public IEnumerable <Butas> Search(ApartmentsSearchDto searchDto) { // TODO: add null check to new search options var apartments = _repository.Set <Butas>() .Include(o => o.BusenaNavigation) .Include(o => o.FkSavininkasidIsNaudotojasNavigation) .Include(o => o.FkSavininkasidIsNaudotojasNavigation.IdIsNaudotojasNavigation) .Include(o => o.Darbas) .Include(o => o.NuomosLaikotarpis) .Include(o => o.Privalumas) .Include(o => o.Reitingas) .Include(o => o.Skundas) .AsNoTracking().AsEnumerable(); var foundApartments = new List <Butas>(); foreach (var apartment in apartments) { if ((searchDto.OwnerId != null && apartment.FkSavininkasidIsNaudotojas == searchDto.OwnerId) || (searchDto.TenantId != null && apartment.NuomosLaikotarpis.Any(o => o.FkNuomininkasidIsNaudotojas.Equals(searchDto.TenantId)))) { foundApartments.Add(apartment); } } return(foundApartments); }
public ActionResult <IEnumerable <ApartmentDto> > SearchApartments([FromBody] ApartmentsSearchDto searchDto) { if (searchDto.OwnerId == null && searchDto.TenantId == null) { return(BadRequest("No search options")); } var apartments = _repository.Butas.Search(searchDto); if (!apartments.Any()) { return(NotFound("No apartments found")); } return(Ok(apartments)); }