public async Task <ActionResult <List <Model.Hotel> > > HotelsList([FromQuery] HotelSearchParams searchParams) { var hotels = await _repo.GetAll(searchParams); Response.AddPagination(hotels.CurrentPage, hotels.PageSize, hotels.TotalCount, hotels.TotalPages); return(hotels.ToList()); }
// Search: api/Hotel/name="s"&city="a" public async Task <ActionResult <PagedList <Model.Hotel> > > SearchHotel([FromQuery] HotelSearchParams hotelSearchParams) { var hotels = await _repo.Search(hotelSearchParams); Response.AddPagination(hotels.CurrentPage, hotels.PageSize, hotels.TotalCount, hotels.TotalPages); return(hotels); }
public async Task <PagedList <Model.Hotel> > GetAll(HotelSearchParams hotelParams) { var hotels = _context.Hotels.AsNoTracking().OrderByDescending(h => h.Id).AsQueryable(); if (hotelParams.Name != null && !string.IsNullOrWhiteSpace(hotelParams.Name)) { hotels = hotels.Where(h => h.Name.ToLower().Contains(hotelParams.Name.ToLower())); } if (hotelParams.City != null && hotelParams.City != "undefined" && !string.IsNullOrWhiteSpace(hotelParams.City)) { hotels = hotels.Where(h => h.City.ToLower() == hotelParams.City.ToLower()); } return(await PagedList <Model.Hotel> .CreateAsync(hotels, hotelParams.PageNumber, hotelParams.PageSize)); }
public async Task <PagedList <Model.Hotel> > Search(HotelSearchParams hotelSearchParams) { var hotels = _context.Hotels.AsNoTracking(). OrderByDescending(h => h.Id).Include(hr => hr.Rooms).AsQueryable(); if (hotelSearchParams.City != null && !string.IsNullOrWhiteSpace(hotelSearchParams.City)) { hotels = hotels.Where(h => h.City.ToLower() == hotelSearchParams.City.ToLower()); } /* if (hotelSearchParams.Adults != 0) * { * if (hotelSearchParams.Adults == 1 ) * hotelSearchParams.Adults = 2; * * hotels = hotels.Where(h => h.Rooms.Any(r => r.MaximumGuests == hotelSearchParams.Adults)); * } */ return(await PagedList <Model.Hotel> .CreateAsync(hotels, hotelSearchParams.PageNumber, hotelSearchParams.PageSize)); }