public async Task <IEnumerable <PersonViewModel> > GetFiltered(PersonSearchDto personSearchDto) { IEnumerable <PersonViewModel> returnValue = null; personSearchDto.Name.IsSpecified = !(string.IsNullOrWhiteSpace(personSearchDto.Name.Value)); personSearchDto.Vorname.IsSpecified = !(string.IsNullOrWhiteSpace(personSearchDto.Vorname.Value)); personSearchDto.GeburtsdatumVon.IsSpecified = personSearchDto.GeburtsdatumVon.Value.HasValue; personSearchDto.GeburtsdatumBis.IsSpecified = personSearchDto.GeburtsdatumBis.Value.HasValue; string requestUri = string.Format($"/api/people/search"); var requestBody = JsonConvert.SerializeObject(personSearchDto); var stringContent = new StringContent(requestBody, Encoding.UTF8, "application/json"); using (var response = await _httpClient.PostAsync(requestUri, stringContent, CancellationToken.None)) { using (HttpContent content = response.Content) { string responseBody = await response.Content.ReadAsStringAsync(); var personDtos = JsonConvert.DeserializeObject <IEnumerable <PersonDto> >(responseBody); returnValue = personDtos.Select(CopyDtoToViewModel); } } return(returnValue); }
public IEnumerable <PersonDto> GetPerson(PersonSearchDto person) { IFindFluent <PersonDto, PersonDto> find = personCollection.Find(f => true); IEnumerable <PersonDto> result = find.ToList(); return(result); }
public GenericResponse <IEnumerable <PersonDto> > GetPerson(PersonSearchDto person) { IEnumerable <PersonDto> result = personRepository.GetPerson(person); GenericResponse <IEnumerable <PersonDto> > response = new GenericResponse <IEnumerable <PersonDto> >() { Result = result }; return(response); }
public IActionResult GetPerson([FromBody] PersonSearchDto person) { GenericResponse <IEnumerable <PersonDto> > response = personService.GetPerson(person); return(StatusCode(response.StatusCode, response)); }
public async Task <IActionResult> PostAndGetBySearchCriteria([FromBody] PersonSearchDto searchCriteria) { return(Ok(await _repository.GetByCriteriaAsync(searchCriteria))); }
public async Task <IEnumerable <PersonDto> > GetByCriteriaAsync(PersonSearchDto searchCriteria) { var filter = PredicateBuilder.True <Person>(); if (searchCriteria.Name.IsSpecified) { switch (searchCriteria.Name.LogicalOperator) { case LogicalOperators.Equals: //filter = filter.And(p => 0 == string.Compare(p.Name, searchCriteria.Name.Value.Trim(new char[] { '%' }), true)); filter = filter.And(p => 0 == string.Compare(p.Name, searchCriteria.Name.Value, true)); break; case LogicalOperators.Contains: filter = filter.And(p => p.Name.Contains(searchCriteria.Name.Value)); break; case LogicalOperators.StartsWith: filter = filter.And(p => p.Name.StartsWith(searchCriteria.Name.Value)); //, true, CultureInfo.InvariantCulture break; case LogicalOperators.EndsWith: filter = filter.And(p => p.Name.EndsWith(searchCriteria.Name.Value)); break; default: throw new Exception(string.Format( "Logischer Operator '{0}' wird für den Typ {1} nicht unterstützt.", Enum.GetName(typeof(LogicalOperators), searchCriteria.Name.LogicalOperator), searchCriteria.Name.Value.GetType().Name)); } } if (searchCriteria.Vorname.IsSpecified) { switch (searchCriteria.Vorname.LogicalOperator) { case LogicalOperators.Equals: filter = filter.And(p => 0 == string.Compare(p.Vorname, searchCriteria.Vorname.Value, true)); break; case LogicalOperators.Contains: filter = filter.And(p => p.Vorname.Contains(searchCriteria.Vorname.Value)); break; case LogicalOperators.StartsWith: filter = filter.And(p => p.Vorname.StartsWith(searchCriteria.Vorname.Value)); break; case LogicalOperators.EndsWith: filter = filter.And(p => p.Vorname.EndsWith(searchCriteria.Vorname.Value)); break; default: throw new Exception(string.Format( "Logischer Operator '{0}' wird für den Typ {1} nicht unterstützt.", Enum.GetName(typeof(LogicalOperators), searchCriteria.Vorname.LogicalOperator), searchCriteria.Vorname.Value.GetType().Name)); } } if (searchCriteria.GeburtsdatumVon.IsSpecified) { switch (searchCriteria.GeburtsdatumVon.LogicalOperator) { case LogicalOperators.Equals: filter = filter.And(p => p.Geburtsdatum == searchCriteria.GeburtsdatumVon.Value); break; case LogicalOperators.GreaterThan: filter = filter.And(p => p.Geburtsdatum > searchCriteria.GeburtsdatumVon.Value); break; case LogicalOperators.GreaterThanOrEqual: filter = filter.And(p => p.Geburtsdatum >= searchCriteria.GeburtsdatumVon.Value); break; case LogicalOperators.LessThan: filter = filter.And(p => p.Geburtsdatum < searchCriteria.GeburtsdatumVon.Value); break; case LogicalOperators.LessThanOrEqual: filter = filter.And(p => p.Geburtsdatum <= searchCriteria.GeburtsdatumVon.Value); break; } } if (searchCriteria.GeburtsdatumBis.IsSpecified) { switch (searchCriteria.GeburtsdatumBis.LogicalOperator) { case LogicalOperators.Equals: filter = filter.And(p => p.Geburtsdatum == searchCriteria.GeburtsdatumBis.Value); break; case LogicalOperators.GreaterThan: filter = filter.And(p => p.Geburtsdatum > searchCriteria.GeburtsdatumBis.Value); break; case LogicalOperators.GreaterThanOrEqual: filter = filter.And(p => p.Geburtsdatum >= searchCriteria.GeburtsdatumBis.Value); break; case LogicalOperators.LessThan: filter = filter.And(p => p.Geburtsdatum < searchCriteria.GeburtsdatumBis.Value); break; case LogicalOperators.LessThanOrEqual: filter = filter.And(p => p.Geburtsdatum <= searchCriteria.GeburtsdatumBis.Value); break; } } var dbResult = await _adressbuchDbContext.Personen.Where(filter).ToListAsync(); return(dbResult.Select(CopyDbModelToDto)); }