namespace DocuMed.Repository.Repositories.Entities; public class MedicalHistoryTemplateRepository(ApplicationContext dbContext, ICurrentUserService currentUserService) : BaseRepository(dbContext, currentUserService), IMedicalHistoryTemplateRepository { public async Task> GetMedicalHistoryTemplatesAsync(int page = 0, CancellationToken cancellationToken = default) { if (!Guid.TryParse(CurrentUserService.UserId, out Guid userId)) throw new AppException("توکن غیرمجاز", ApiResultStatusCode.UnAuthorized); var list = await TableNoTracking .Where(t => t.ApplicationUserId == userId) .OrderByDescending(t => t.CreatedAt) .Skip(page * 15) .Take(15) .Select(MedicalHistoryTemplateMapper.ProjectToSDto) .ToListAsync(cancellationToken); return list; } public async Task GetMedicalHistoryTemplateAsync(Guid id, CancellationToken cancellationToken = default) { var dto = await TableNoTracking.Where(t => t.Id == id) .Select(MedicalHistoryTemplateMapper.ProjectToLDto) .FirstOrDefaultAsync(cancellationToken); if (dto == null) throw new AppException("پیش نویس پیدا نشد", ApiResultStatusCode.NotFound); return dto; } }