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