public Task <PagedResult <MedicalfileAggregate> > Search(SearchMedicalfileQuery parameter, CancellationToken token) { IQueryable <MedicalfileAggregate> medicalfiles = _medicalfiles.AsQueryable(); if (MAPPING_MEDICALFILE_TO_PROPERTYNAME.ContainsKey(parameter.OrderBy)) { medicalfiles = medicalfiles.InvokeOrderBy(MAPPING_MEDICALFILE_TO_PROPERTYNAME[parameter.OrderBy], parameter.Order); } if (!string.IsNullOrWhiteSpace(parameter.Niss)) { medicalfiles = medicalfiles.Where(r => r.PatientNiss.StartsWith(parameter.Niss, System.StringComparison.InvariantCultureIgnoreCase)); } if (!string.IsNullOrWhiteSpace(parameter.Firstname)) { medicalfiles = medicalfiles.Where(r => r.PatientFirstname.StartsWith(parameter.Firstname, System.StringComparison.InvariantCultureIgnoreCase)); } if (!string.IsNullOrWhiteSpace(parameter.Lastname)) { medicalfiles = medicalfiles.Where(r => r.PatientLastname.StartsWith(parameter.Lastname, System.StringComparison.InvariantCultureIgnoreCase)); } int totalLength = medicalfiles.Count(); medicalfiles = medicalfiles.Skip(parameter.StartIndex).Take(parameter.Count); return(Task.FromResult(new PagedResult <MedicalfileAggregate> { StartIndex = parameter.StartIndex, Count = parameter.Count, TotalLength = totalLength, Content = (ICollection <MedicalfileAggregate>)medicalfiles.ToList() })); }
public async Task <PagedResult <GetMedicalfileResult> > Handle(SearchMedicalfileQuery request, CancellationToken cancellationToken) { var result = await _medicalfileQueryRepository.Search(request, cancellationToken); return(new PagedResult <GetMedicalfileResult> { Count = result.Count, StartIndex = result.StartIndex, TotalLength = result.TotalLength, Content = result.Content.Select(_ => _.ToResult()).ToList() }); }
public static SearchMedicalfileQuery ToSearchMedicalfileQuery(this IEnumerable <KeyValuePair <string, object> > parameters) { var result = new SearchMedicalfileQuery(); result.ExtractSearchParameters(parameters); if (parameters.TryGet(MedikitApiConstants.MedicalfileNames.Niss, out string niss)) { result.Niss = niss; } if (parameters.TryGet(MedikitApiConstants.MedicalfileNames.Firstname, out string firstname)) { result.Firstname = firstname; } if (parameters.TryGet(MedikitApiConstants.MedicalfileNames.Lastname, out string lastname)) { result.Lastname = lastname; } return(result); }
public Task <PagedResult <GetMedicalfileResult> > SearchMedicalfiles(SearchMedicalfileQuery query, CancellationToken token) { return(_mediator.Send(query, token)); }