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)); }
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)); }