private void ConfigureRoomExtra(RoomDetailSelectorControl ucRoomDetailSelectorControl, HotelRoomAvailInfo objHotelRoomAvailInfo, HotelDescriptiveInfo objHotelDescriptiveInfo) { // Selected Room Rate var selectedRoomRate = (from rrs in RoomRateSelections where rrs.RoomRefID == ucRoomDetailSelectorControl.RoomRefID select rrs).FirstOrDefault(); if (selectedRoomRate == null || string.IsNullOrWhiteSpace(selectedRoomRate.RatePlanCode)) return; var roomRateInfo = (from item in objHotelRoomAvailInfo.RatePlans where item.Code == selectedRoomRate.RatePlanCode select item).FirstOrDefault(); var packages = from package in roomRateInfo.Packages where package.RoomTypeCode.Equals(string.Empty) || package.RoomTypeCode == selectedRoomRate.RoomTypeCode select package; var roomOccupantSelection = StayCriteriaSelection.RoomOccupantSelections.FirstOrDefault(room => room.RoomRefID == ucRoomDetailSelectorControl.RoomRefID); var selectedExtras = from extra in AddOnPackageSelections where extra.RoomRefID == ucRoomDetailSelectorControl.RoomRefID select extra; List<string> packageForShowingInRemoteContent = new List<string>(); //Render selected Extras if (selectedExtras.Count() > 0) { foreach (var extra in selectedExtras) { var localExtra = extra; var selectedPackage = packages.Where(pkg => pkg.Code == localExtra.PackageCode).FirstOrDefault(); AddOnPackageSelectorItemControl ucAddOnPackageSelectorItemControl = (AddOnPackageSelectorItemControl)LoadControl(strAddOnPackageSelectorItemControlPath); ucAddOnPackageSelectorItemControl.ID = string.Format("{0}_{1}_{2}_selected" , "AddOnPackageSelectorItemControl" , ucRoomDetailSelectorControl.RoomRefID , RemoveSpecialCharFromString(selectedPackage.Code)); ucAddOnPackageSelectorItemControl.IsItemRemovable = (!bIsConfirmed && Step != BookingSteps.GuestInfo); ucAddOnPackageSelectorItemControl.RoomRefID = ucRoomDetailSelectorControl.RoomRefID; ucAddOnPackageSelectorItemControl.NumberAdults = roomOccupantSelection.NumberAdults; ucAddOnPackageSelectorItemControl.NumberStayNights = (StayCriteriaSelection.DepartureDate - StayCriteriaSelection.ArrivalDate).Days; ucAddOnPackageSelectorItemControl.PackageDescription = objHotelDescriptiveInfo.Packages.FirstOrDefault(pkg => pkg.Code == selectedPackage.Code); ucAddOnPackageSelectorItemControl.PackageRate = packages.FirstOrDefault(pkg => pkg.Code == selectedPackage.Code); ucAddOnPackageSelectorItemControl.PackageQuantity = localExtra.Quantity; ucAddOnPackageSelectorItemControl.Selected = true; ucRoomDetailSelectorControl.AddSelectedRoomExtraItemControl(ucAddOnPackageSelectorItemControl); } } //Render available extras if (CurrentRoomRefID == ucRoomDetailSelectorControl.RoomRefID && ucRoomDetailSelectorControl.Step == RoomDetailSelectionStep.SelectExtra) { foreach (HotelAvailPackage package in packages) { var localPackage = package; if (!packageForShowingInRemoteContent.Contains(localPackage.Code)) packageForShowingInRemoteContent.Add(localPackage.Code); if (selectedExtras.Count() > 0) { HotelAvailPackage cpPackage = package; var selectedAddOn = selectedExtras.Where(addOn => addOn.RoomRefID == CurrentRoomRefID && addOn.PackageCode == cpPackage.Code); if (selectedAddOn.Count() > 0) continue; } AddOnPackageSelectorItemControl ucAddOnPackageSelectorItemControl = (AddOnPackageSelectorItemControl)LoadControl(strAddOnPackageSelectorItemControlPath); ucAddOnPackageSelectorItemControl.ID = string.Format("{0}_{1}_{2}_available" , "AddOnPackageSelectorItemControl" , ucRoomDetailSelectorControl.RoomRefID , RemoveSpecialCharFromString(package.Code)); ucAddOnPackageSelectorItemControl.RoomRefID = ucRoomDetailSelectorControl.RoomRefID; ucAddOnPackageSelectorItemControl.NumberAdults = roomOccupantSelection.NumberAdults; ucAddOnPackageSelectorItemControl.NumberStayNights = (StayCriteriaSelection.DepartureDate - StayCriteriaSelection.ArrivalDate).Days; ucAddOnPackageSelectorItemControl.PackageDescription = objHotelDescriptiveInfo.Packages.FirstOrDefault(pkg => pkg.Code == localPackage.Code); ucAddOnPackageSelectorItemControl.PackageRate = packages.FirstOrDefault(pkg => pkg.Code == localPackage.Code); ucAddOnPackageSelectorItemControl.PackageQuantity = 0; ucAddOnPackageSelectorItemControl.Selected = false; ucRoomDetailSelectorControl.AddRoomExtraItemControl(ucAddOnPackageSelectorItemControl); } } if (Step == BookingSteps.SelectRoomDetail && CurrentRoomDetailStep == RoomDetailSelectionStep.SelectExtra && !bShowRoomTypePhoto) ucRemoteContentContainer.Src += string.Format("?show={0}", string.Join(",", packageForShowingInRemoteContent)); }
private void ConfigureTempTotalCostControl(RoomDetailSelectorControl ucRoomDetailSelectorControl) { if (Step.Equals(BookingSteps.SelectRoomDetail) && CurrentRoomRefID.Equals(ucRoomDetailSelectorControl.RoomRefID)) { TotalCostControl totalCostControl = (TotalCostControl)LoadControl(strTotalCostControlPath); totalCostControl.ID = "TempTotalCostControl"; ucRoomDetailSelectorControl.AddTempTotalCostControl(totalCostControl); totalCostControl.CurrencyCode = "EUR"; totalCostControl.Mode = SelectionMode.Edit; decimal totalCost = 0; for (int i = 0; i < phRoomDetailSelectorControl.Controls.Count; i++) { totalCost += ((RoomDetailSelectorControl)phRoomDetailSelectorControl.Controls[i]).TotalCost(); } totalCostControl.TotalCost = totalCost; } }
private void ConfigureChildrenQuantityControl(RoomDetailSelectorControl ucRoomDetailSelectorControl) { SelectionMode selectionMode = ((CurrentRoomRefID == ucRoomDetailSelectorControl.RoomRefID && CurrentRoomDetailStep == RoomDetailSelectionStep.SelectChildrenQuantity) ? SelectionMode.Edit : SelectionMode.Selected); if (bIsConfirmed) selectionMode = SelectionMode.NonModifiable; var ucChildrenQuantitySelectorControl = (PeopleQuantitySelectorControl)LoadControl(strPeopleQuanitySelectorControlPath); ucChildrenQuantitySelectorControl.Mode = selectionMode; ucChildrenQuantitySelectorControl.DetailStep = RoomDetailSelectionStep.SelectChildrenQuantity; ucChildrenQuantitySelectorControl.ID = "ChildrenQuantitySelectorControl_" + ucRoomDetailSelectorControl.RoomRefID; ucChildrenQuantitySelectorControl.MinQuantity = 0; ucChildrenQuantitySelectorControl.MaxQuantity = WebconfigHelper.GetMaxChildrenByHotel(StayCriteriaSelection.HotelCode); ucChildrenQuantitySelectorControl.RoomRefID = ucRoomDetailSelectorControl.RoomRefID; ucChildrenQuantitySelectorControl.NumberOfPeople = StayCriteriaSelection.RoomOccupantSelections.FirstOrDefault(item => item.RoomRefID == ucRoomDetailSelectorControl.RoomRefID).NumberChildren; ucRoomDetailSelectorControl.AddChildrenQuantitySelectorContorl(ucChildrenQuantitySelectorControl); }
private void ConfigureRoomRateSelectorControl(RoomDetailSelectorControl ucRoomDetailSelectorControl, HotelRoomAvailInfo objHotelRoomAvailInfo, HotelDescriptiveInfo objHotelDescriptiveInfo) { // Selected Mode var selectedRoomRate = (from rrs in RoomRateSelections where rrs.RoomRefID == ucRoomDetailSelectorControl.RoomRefID select rrs).FirstOrDefault(); // Edit Mode if (Step == BookingSteps.SelectRoomDetail && CurrentRoomRefID == ucRoomDetailSelectorControl.RoomRefID && ucRoomDetailSelectorControl.Step == RoomDetailSelectionStep.SelectRoomType) { List<string> roomTypesForFilter = new List<string>(); foreach (var roomType in objHotelRoomAvailInfo.RoomTypes) { bool bRatesAvailable = false; HotelAvailRoomType localRoomType = roomType; var roomRates = objHotelRoomAvailInfo.RoomRates.Where(item => item.RoomTypeCode == localRoomType.Code); if (roomRates.Count() <= 0) continue; foreach (HotelAvailRoomRate roomRate in roomRates) { var localRoomRate = roomRate; if (!IsRoomRateDescriptionModel || localRoomRate.DescriptionStatus == RoomRateDescriptionStatus.Active) { bRatesAvailable = true; break; } var ratePlans = objHotelRoomAvailInfo.RatePlans.Where(ratePlan => ratePlan.Code == localRoomRate.RatePlanCode && (ratePlan.Type == RatePlanType.Negotiated || ratePlan.Type == RatePlanType.Consortia)); if (ratePlans.Count() > 0) bRatesAvailable = true; } if (!bRatesAvailable) continue; HtmlGenericControl rtPanelWrapper = new HtmlGenericControl("div"); rtPanelWrapper.Attributes.Add("class", "mm_roomrate_info mm_background_info"); HtmlGenericControl rtPanel = new HtmlGenericControl("div"); rtPanel.Attributes.Add("class", "mm_roomrate_content mm_text_info"); HtmlGenericControl rtName = new HtmlGenericControl("span"); rtName.Attributes.Add("class", "mm_text_x_strong"); rtName.InnerText = roomType.Name; rtPanelWrapper.Controls.Add(rtPanel); rtPanel.Controls.Add(rtName); ucRoomDetailSelectorControl.AddRoomTypeControl(rtPanelWrapper); foreach (HotelAvailRoomRate roomRate in roomRates) { var localRoomRate = roomRate; if (IsRoomRateDescriptionModel && localRoomRate.DescriptionStatus == RoomRateDescriptionStatus.Inactive) { HotelAvailRoomRate cpRoomRate = localRoomRate; var ratePlans = from ratePlan in objHotelRoomAvailInfo.RatePlans where ratePlan.Code == cpRoomRate.RatePlanCode && ratePlan.Type != RatePlanType.Negotiated && ratePlan.Type != RatePlanType.Consortia select ratePlan; if (ratePlans.Count() > 0) continue; } RatePlanSelectorItemControl ucRatePlanSelectorItemControl = (RatePlanSelectorItemControl)LoadControl(strRatePlanSelectorItemControlPath); ucRatePlanSelectorItemControl.Mode = (CurrentRoomDetailStep == RoomDetailSelectionStep.SelectRoomType ? SelectionMode.Edit : SelectionMode.Selected); ucRatePlanSelectorItemControl.ID = string.Format("{0}_{1}_{2}_{3}", "RatePlanSelectorItem" , ucRoomDetailSelectorControl.RoomRefID , localRoomRate.RoomTypeCode , RemoveSpecialCharFromString(localRoomRate.RatePlanCode)); ucRatePlanSelectorItemControl.RoomRefID = ucRoomDetailSelectorControl.RoomRefID; ucRatePlanSelectorItemControl.RoomRate = localRoomRate; ucRatePlanSelectorItemControl.RoomTypeDescription = objHotelDescriptiveInfo.RoomTypes.FirstOrDefault(item => item.Code == localRoomType.Code); ucRatePlanSelectorItemControl.CreditCardCodes = objHotelDescriptiveInfo.CreditCardCodes; ucRatePlanSelectorItemControl.Selected = false; ucRatePlanSelectorItemControl.RatePlan = objHotelRoomAvailInfo.RatePlans.FirstOrDefault(item => item.Code == localRoomRate.RatePlanCode); ucRatePlanSelectorItemControl.IsShowPhotoLink = !(Step == BookingSteps.Confirmed || Step == BookingSteps.GuestInfo); ucRatePlanSelectorItemControl.RoomRateSelected += ucRoomDetailSelectorControl_RatePlanSelected; ucRoomDetailSelectorControl.AddRatePlanSelectorItem(ucRatePlanSelectorItemControl); if (!roomTypesForFilter.Contains(roomRate.RoomTypeCode) && !string.IsNullOrWhiteSpace(roomRate.RoomTypeCode)) roomTypesForFilter.Add(roomRate.RoomTypeCode); } } if (!bShowRoomTypePhoto) ucRemoteContentContainer.Src += string.Format("?show={0}", string.Join(",", roomTypesForFilter)); } else if (selectedRoomRate != null && !string.IsNullOrWhiteSpace(selectedRoomRate.RatePlanCode)) { HotelAvailRoomRate roomRate = (from item in objHotelRoomAvailInfo.RoomRates where item.RoomTypeCode == selectedRoomRate.RoomTypeCode && item.RatePlanCode == selectedRoomRate.RatePlanCode select item).FirstOrDefault(); RatePlanSelectorItemControl ucSelectedRatePlanSelectorItemControl = (RatePlanSelectorItemControl)LoadControl(strRatePlanSelectorItemControlPath); ucSelectedRatePlanSelectorItemControl.Mode = (this.bIsConfirmed ? SelectionMode.NonModifiable : SelectionMode.Selected); ucSelectedRatePlanSelectorItemControl.ID = string.Format("{0}_{1}_{2}_{3}" , "SelectedRatePlanSelectorItem" , ucRoomDetailSelectorControl.RoomRefID , selectedRoomRate.RoomTypeCode , RemoveSpecialCharFromString(selectedRoomRate.RatePlanCode)); ucSelectedRatePlanSelectorItemControl.RoomRefID = selectedRoomRate.RoomRefID; ucSelectedRatePlanSelectorItemControl.RoomRate = roomRate; ucSelectedRatePlanSelectorItemControl.RoomTypeDescription = objHotelDescriptiveInfo.RoomTypes.FirstOrDefault(item => item.Code == selectedRoomRate.RoomTypeCode); ucSelectedRatePlanSelectorItemControl.CreditCardCodes = objHotelDescriptiveInfo.CreditCardCodes; ucSelectedRatePlanSelectorItemControl.RatePlan = objHotelRoomAvailInfo.RatePlans.FirstOrDefault(item => item.Code == selectedRoomRate.RatePlanCode); ucSelectedRatePlanSelectorItemControl.IsShowPhotoLink = !(Step == BookingSteps.Confirmed || Step == BookingSteps.GuestInfo); ucRoomDetailSelectorControl.AddSelectedRoomRate(ucSelectedRatePlanSelectorItemControl); } }