public async Task <IActionResult> SearchByFilter([FromQuery] FilterInputDTO filterInputDTO) { if (!ModelState.IsValid) { return(BadRequest()); } var reasult = await searchService.SearchByFilter(filterInputDTO); return(Ok(reasult)); }
public async Task <List <FilterOutputDetailDTO> > SearchByFilter(FilterInputDTO filterInputDTO) { var result = new List <FilterOutputDetailDTO>(); var city = new List <FilterOutputDetailDTO>(); var country = new List <FilterOutputDetailDTO>(); if (filterInputDTO.CityId != null) { city = TuristPlaceRepository.GetQuery() .Include(x => x.City) .Include(x => x.Comments) .Include(x => x.Rates) .Where(y => y.City.Id == filterInputDTO.CityId) .Select(p => mapper.Map <FilterOutputDetailDTO>(p)) .ToList(); } if (filterInputDTO.CountryId != null) { country = TuristPlaceRepository.GetQuery() .Include(x => x.Country) .Include(x => x.Comments) .Include(x => x.Rates) .Where(y => y.Country.Id == filterInputDTO.CountryId) .Select(p => mapper.Map <FilterOutputDetailDTO>(p)) .ToList(); } if (country.Count != 0) { if (city.Count != 0) { foreach (var item in country) { foreach (var item2 in city) { if (item.id == item2.id) { result.Add(item); } } } } else { result = country; } } else if (city.Count != 0) { result = city; } return(result); }