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);
        }
Example #3
0
        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));
        }
Example #4
0
        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));
        }