// Search: api/room/RoomtypeId=1&HotelId=2"
        public async Task <IActionResult> SearchRoom([FromQuery] RoomSearchParams roomSearchParams)
        {
            var rooms = await _repo.Search(roomSearchParams);

            var roomsToReturn = _mapper.Map <IEnumerable <RoomForListDto> >(rooms);

            return(Ok(roomsToReturn));
        }
Esempio n. 2
0
        public async Task <IEnumerable <Room> > Search(RoomSearchParams roomSearchParams)
        {
            var rooms = _context.Rooms.AsNoTracking().OrderByDescending(r => r.Id).AsQueryable();

            if (roomSearchParams.HotelId != 0)
            {
                rooms = rooms.Where(r => r.HotelId == roomSearchParams.HotelId);
            }

            if (roomSearchParams.RoomTypeId != 0)
            {
                rooms = rooms.Where(r => r.RoomTypeId == roomSearchParams.RoomTypeId);
            }

            if (roomSearchParams.isAvailable)
            {
                rooms = rooms.Where(r => r.Available == roomSearchParams.isAvailable);
            }

            return(await PagedList <Room> .CreateAsync(rooms, roomSearchParams.PageNumber, roomSearchParams.PageSize));
        }