コード例 #1
0
        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);
        }
コード例 #2
0
        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));
        }