/// <summary> /// Returns the list of the rooms. /// </summary> /// <param name="model">The get rooms model</param> /// <returns>The list of the rooms</returns> public async Task <ResponseModel> GetRooms(GetRoomsViewModel model) { var query = _context.HotelRooms .AsNoTracking(); query = model.FindColumn switch { Enums.HotelRoomColumns.Id => query.Where(x => x.Id.ToString().Contains(model.FindValue)), Enums.HotelRoomColumns.Capacity => query.Where(x => x.Capacity.ToString().Contains(model.FindValue)), Enums.HotelRoomColumns.Type => query.Where(x => ((int)x.Type).ToString().Contains(model.FindValue)), Enums.HotelRoomColumns.IsOccupied => query.Where(x => x.IsOccupied.ToString().Contains(model.FindValue)), Enums.HotelRoomColumns.Cost => query.Where(x => x.Cost.ToString().Contains(model.FindValue)), _ => query }; if (model.IsAscending) { query = model.SortColumn switch { Enums.HotelRoomColumns.Capacity => query.OrderBy(x => x.Capacity), Enums.HotelRoomColumns.Type => query.OrderBy(x => x.Type), Enums.HotelRoomColumns.IsOccupied => query.OrderBy(x => x.IsOccupied), Enums.HotelRoomColumns.Cost => query.OrderBy(x => x.Cost), _ => query.OrderBy(x => x.Id) }; } else { query = model.SortColumn switch { Enums.HotelRoomColumns.Capacity => query.OrderByDescending(x => x.Capacity), Enums.HotelRoomColumns.Type => query.OrderByDescending(x => x.Type), Enums.HotelRoomColumns.IsOccupied => query.OrderByDescending(x => x.IsOccupied), Enums.HotelRoomColumns.Cost => query.OrderByDescending(x => x.Cost), _ => query.OrderByDescending(x => x.Id) }; } var rooms = await query.Skip((model.Page - 1) *model.RoomsOnPage) .Take(model.RoomsOnPage) .ToListAsync(); return(new ResponseModel(rooms)); }
/// <summary> /// Returns the list of the rooms. /// </summary> /// <param name="model">The get rooms model</param> /// <returns>The list of the rooms</returns> public async Task <ResponseModel> GetRooms(GetRoomsViewModel model) { model.Page = model.Page <= 0 ? 1 : model.Page; model.RoomsOnPage = model.RoomsOnPage <= 0 ? 5 : model.RoomsOnPage; return(await _repository.GetRooms(model)); }
public async Task <ResponseModel> GetRooms([FromQuery] GetRoomsViewModel model) { return(await _storage.GetRooms(model)); }