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); }
//[TestMethod] public void GetHotelList() { // Initialize Value here for testing SearchHotelModel searchHotelModel = InitializeTestingModel.SearchHotelModel("Kuala Lumpur"); var result = Alphareds.Module.ServiceCall.ExpediaHotelsServiceCall.GetHotelList(searchHotelModel); if (result.Errors != null) { Exception ex = new Exception(); throw new Exception("An error occur while getting hotel from service: " + System.Environment.NewLine + result.Errors.ErrorMessage); } SearchRoomModel searchRoomModel = InitializeTestingModel.SearchRoomHotel(searchHotelModel, result.HotelList.First().hotelId); var roomAvail = Alphareds.Module.ServiceCall.ExpediaHotelsServiceCall.GetRoomAvailability(searchRoomModel, searchHotelModel); if (roomAvail.Errors != null) { Exception ex = new Exception(); throw new Exception("An error occur while getting room from service: " + System.Environment.NewLine + roomAvail.Errors.ErrorMessage); } }
public JsonResult SearchRoom(SearchRoomModel searchRoomModel) { IList <RoomViewModel> matchRooms = _roomService.GetRoomModels(searchRoomModel); return(Json(matchRooms, JsonRequestBehavior.AllowGet)); }