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()
            }));
        }
Exemple #2
0
        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);
        }
Exemple #4
0
 public Task <PagedResult <GetMedicalfileResult> > SearchMedicalfiles(SearchMedicalfileQuery query, CancellationToken token)
 {
     return(_mediator.Send(query, token));
 }