Esempio n. 1
0
        /// <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));
        }
Esempio n. 2
0
 /// <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));
 }