Ejemplo n.º 1
0
        public List <RoomOptionModel> GetRoomOptions(SearchRoomCriteria criteria)
        {
            var roomOptionCriteria = new RoomOptionDaoCriteria
            {
                AirConditioning = criteria.AirConditioning,
                Balcony         = criteria.Balcony,
                ChildBed        = criteria.ChildBed,
                WiFi            = criteria.WiFi
            };

            IList <DataAccess.Entities.RoomOption> roomOptions = _roomOptionDao.GetRoomOptions(roomOptionCriteria);

            List <RoomOptionModel> roomOptionModels = roomOptions.Select(x => new RoomOptionModel
            {
                AirConditioning = x.AirConditioning,
                Balcony         = x.Balcony,
                ChildBed        = x.ChildBed,
                WiFi            = x.WiFi,
                OnePersonBed    = x.OnePersonBed,
                TwoPersonBed    = x.TwoPersonBed,
                RoomId          = x.RoomId
            }).ToList();

            return(roomOptionModels);
        }
Ejemplo n.º 2
0
        public IList <Room> GetRooms(SearchRoomCriteria criteria)
        {
            int personNumber = criteria.Adults + criteria.Children;

            using (var db = new HotelBookingDb())
            {
                List <Room> rooms = db.Room.Where(x => x.MaxPerson >= personNumber).ToList();
                return(rooms);
            }
        }
Ejemplo n.º 3
0
        public IList <RoomViewModel> GetRoomModels(SearchRoomModel searchRoomModel)
        {
            var searchRoomCriteria = new SearchRoomCriteria
            {
                Adults          = searchRoomModel.Adults ?? 0,
                Children        = searchRoomModel.Children ?? 0,
                AirConditioning = searchRoomModel.AirConditioning,
                Balcony         = searchRoomModel.Balcony,
                ChildBed        = searchRoomModel.ChildBed,
                WiFi            = searchRoomModel.WiFi
            };

            IList <DataAccess.Entities.Room> rooms = _roomDao.GetRooms(searchRoomCriteria);

            List <int> reservedRoomsIds = _reservationService.GetReservedRoomsIdsByDateRange(searchRoomModel.ReservationStartDate, searchRoomModel.ReservationEndDate);

            List <DataAccess.Entities.Room> availableRooms = rooms.Where(x => !reservedRoomsIds.Contains(x.Id)).ToList();

            List <RoomOptionModel> roomOptions = _roomOptionService.GetRoomOptions(searchRoomCriteria);

            List <DataAccess.Entities.Room> availableRoomsWithSelectedOptions = availableRooms.Where(x => roomOptions.Any(ro => ro.RoomId == x.Id)).ToList();

            List <RoomViewModel> matchRooms = (from room in availableRoomsWithSelectedOptions
                                               join roomOption in roomOptions on room.Id equals roomOption.RoomId
                                               select new RoomViewModel
            {
                RoomModel = new RoomModel
                {
                    Id = room.Id,
                    Name = room.Name,
                    Number = room.Number,
                    MaxPerson = room.MaxPerson,
                    Price = room.Price,
                    RoomOptionModel = roomOption
                },
                TotalPrice = GetTotalPrice(searchRoomModel.ReservationStartDate, searchRoomModel.ReservationEndDate, room.Price)
            }).ToList();

            return(matchRooms);
        }