public async Task <IActionResult> GetApartments([FromQuery] ApartmentParams apartmentParams)
        {
            var apartments = await _repo.GetApartments(apartmentParams);

            Response.AddPagination(apartments.CurrentPage, apartments.PageSize, apartments.TotalCount, apartments.TotalPages);

            return(Ok(apartments));
        }
Exemplo n.º 2
0
        public async Task <PagedList <Apartment> > GetApartments(ApartmentParams apartmentParams)
        {
            var apartments = _context.Apartments.OrderByDescending(p => p.Price).AsQueryable();

            if (apartmentParams.MinPrice != 0 || apartmentParams.MaxPrice != int.MaxValue)
            {
                apartments = apartments.Where(p => p.Price >= apartmentParams.MinPrice && p.Price <= apartmentParams.MaxPrice);
            }

            if (apartmentParams.NbOfRooms != null)
            {
                apartments = apartments.Where(p => p.NbOfRooms == apartmentParams.NbOfRooms);
            }

            if (!string.IsNullOrEmpty(apartmentParams.Address))
            {
                apartmentParams.Address = apartmentParams.Address.ToLower();
                apartments = apartments.Where(p => p.Address.ToLower().Contains(apartmentParams.Address));
            }

            return(await PagedList <Apartment> .CreateAsync(apartments, apartmentParams.PageNumber, apartmentParams.PageSize));
        }