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