public Task <PagedResult <PatientAggregate> > Search(SearchPatientsQuery parameter, CancellationToken token) { IQueryable <PatientAggregate> patients = _patients.AsQueryable(); if (MAPPING_PATIENT_TO_PROPERTYNAME.ContainsKey(parameter.OrderBy)) { patients = patients.InvokeOrderBy(MAPPING_PATIENT_TO_PROPERTYNAME[parameter.OrderBy], parameter.Order); } if (!string.IsNullOrWhiteSpace(parameter.Niss)) { patients = patients.Where(r => r.NationalIdentityNumber.StartsWith(parameter.Niss, System.StringComparison.InvariantCultureIgnoreCase)); } if (!string.IsNullOrWhiteSpace(parameter.Firstname)) { patients = patients.Where(r => r.Firstname.StartsWith(parameter.Firstname, System.StringComparison.InvariantCultureIgnoreCase)); } if (!string.IsNullOrWhiteSpace(parameter.Lastname)) { patients = patients.Where(r => r.Lastname.StartsWith(parameter.Lastname, System.StringComparison.InvariantCultureIgnoreCase)); } int totalLength = patients.Count(); patients = patients.Skip(parameter.StartIndex).Take(parameter.Count); return(Task.FromResult(new PagedResult <PatientAggregate> { StartIndex = parameter.StartIndex, Count = parameter.Count, TotalLength = totalLength, Content = (ICollection <PatientAggregate>)patients.ToList() })); }
public async Task <PagedResult <GetPatientQueryResult> > Handle(SearchPatientsQuery query, CancellationToken token) { var result = await _patientQueryRepository.Search(query, token); return(new PagedResult <GetPatientQueryResult> { Count = result.Count, StartIndex = result.StartIndex, TotalLength = result.TotalLength, Content = result.Content.Select(_ => _.ToResult()).ToList() }); }
private static SearchPatientsQuery BuildSearchRequest(IEnumerable <KeyValuePair <string, object> > parameters) { string niss, firstname, lastname; var result = new SearchPatientsQuery(); result.ExtractSearchParameters(parameters); if (parameters.TryGet("niss", out niss)) { result.Niss = niss; } if (parameters.TryGet("firstname", out firstname)) { result.Firstname = firstname; } if (parameters.TryGet("lastname", out lastname)) { result.Lastname = lastname; } return(result); }
public Task <PagedResult <GetPatientQueryResult> > Search(SearchPatientsQuery query, CancellationToken token) { return(_mediator.Send(query, token)); }