private void ConfigureAvailCalSelectorControl() { HotelAvailabilityRS objHotelAvailabilityRS = (HotelAvailabilityRS)Session[Constants.Sessions.HotelAvailabilityCalendarRS]; DateTime[] objAvailCalDateSelections = (DateTime[])Session["AvailCalDateSelections"]; DateTime dtToday = TZNet.ToLocal(WbsUiHelper.GetTimeZone(StayCriteriaSelection.HotelCode), DateTime.UtcNow).Date; if (Step != BookingSteps.SelectStayDate) { ucAvailCalSelectorControl.AvailCalendarSelectorMode = AvailCalendarSelectorMode.ViewLink; ucAvailCalSelectorControl.Mode = (bIsConfirmed ? SelectionMode.NonModifiable : SelectionMode.Selected); ucAvailCalSelectorControl.AvailabilityCalendarInfo = new AvailabilityCalendarInfo[0]; ucAvailCalSelectorControl.SelectedDates = objAvailCalDateSelections; ucAvailCalSelectorControl.StayCriteriaSelection = StayCriteriaSelection; ucAvailCalSelectorControl.Today = dtToday.Date; } else { AvailabilityCalendarInfo[] objAvailabilityCalendarInfos = new AvailabilityCalendarInfo[0]; if (objHotelAvailabilityRS != null && objHotelAvailabilityRS.HotelRoomAvailInfos != null) { objAvailabilityCalendarInfos = new AvailabilityCalendarInfo[objHotelAvailabilityRS.HotelRoomAvailInfos.Length]; for (int i = 0; i < objHotelAvailabilityRS.HotelRoomAvailInfos.Length; i++) { objAvailabilityCalendarInfos[i] = new AvailabilityCalendarInfo { SegmentRefID = objHotelAvailabilityRS.HotelRoomAvailInfos[i].SegmentRefID, AvailabilityCalendar = objHotelAvailabilityRS.HotelRoomAvailInfos[i].AvailabilityCalendar }; } } ucAvailCalSelectorControl.AvailCalendarSelectorMode = AvailCalendarSelectorMode.ViewCalendar; ucAvailCalSelectorControl.Mode = SelectionMode.Edit; ucAvailCalSelectorControl.AvailabilityCalendarInfo = objAvailabilityCalendarInfos; ucAvailCalSelectorControl.SelectedDates = objAvailCalDateSelections; ucAvailCalSelectorControl.StayCriteriaSelection = StayCriteriaSelection; ucAvailCalSelectorControl.Today = dtToday.Date; } }
private void ConfigureAvailCalSelectorControl() { if (ConfigurationManager.AppSettings["EnableRoomRateGridModel"] != "1") { StayCriteriaSelection objStayCriteriaSelection = (StayCriteriaSelection)Session[Constants.Sessions.StayCriteriaSelection]; HotelAvailabilityRS objHotelAvailabilityRS = (HotelAvailabilityRS)Session["HotelAvailabilityCalendarRS"]; DateTime[] objAvailCalDateSelections = (DateTime[])Session["AvailCalDateSelections"]; DateTime dtToday = TZNet.ToLocal(WbsUiHelper.GetTimeZone(objStayCriteriaSelection.HotelCode), DateTime.UtcNow).Date; if ((bool)Session["AvailCalRequested"] == false) { ucAvailCalSelectorControl.AvailCalendarSelectorMode = AvailCalendarSelectorMode.ViewLink; ucAvailCalSelectorControl.AvailabilityCalendarInfo = new AvailabilityCalendarInfo[0]; ucAvailCalSelectorControl.SelectedDates = objAvailCalDateSelections; ucAvailCalSelectorControl.StayCriteriaSelection = objStayCriteriaSelection; ucAvailCalSelectorControl.Today = dtToday.Date; } else { AvailabilityCalendarInfo[] objAvailabilityCalendarInfos = new AvailabilityCalendarInfo[objHotelAvailabilityRS.HotelRoomAvailInfos.Length]; for (int i = 0; i < objHotelAvailabilityRS.HotelRoomAvailInfos.Length; i++) { objAvailabilityCalendarInfos[i] = new AvailabilityCalendarInfo(); objAvailabilityCalendarInfos[i].SegmentRefID = objHotelAvailabilityRS.HotelRoomAvailInfos[i].SegmentRefID; objAvailabilityCalendarInfos[i].AvailabilityCalendar = objHotelAvailabilityRS.HotelRoomAvailInfos[i].AvailabilityCalendar; } ucAvailCalSelectorControl.AvailCalendarSelectorMode = AvailCalendarSelectorMode.ViewCalendar; ucAvailCalSelectorControl.AvailabilityCalendarInfo = objAvailabilityCalendarInfos; ucAvailCalSelectorControl.SelectedDates = objAvailCalDateSelections; ucAvailCalSelectorControl.StayCriteriaSelection = objStayCriteriaSelection; ucAvailCalSelectorControl.Today = dtToday.Date; } } return; }
private void ConfigureAvailCalSelectorControl() { StayCriteriaSelection objStayCriteriaSelection = (StayCriteriaSelection)Session[Constants.Sessions.StayCriteriaSelection]; HotelAvailabilityRS objHotelAvailabilityRS = (HotelAvailabilityRS)Session["HotelAvailabilityCalendarRS"]; DateTime[] objAvailCalDateSelections = (DateTime[])Session["AvailCalDateSelections"]; DateTime dtToday = TZNet.ToLocal(WbsUiHelper.GetTimeZone(objStayCriteriaSelection.HotelCode), DateTime.UtcNow).Date; AvailabilityCalendarInfo[] objAvailabilityCalendarInfos = new AvailabilityCalendarInfo[objHotelAvailabilityRS.HotelRoomAvailInfos.Length]; for (int i = 0; i < objHotelAvailabilityRS.HotelRoomAvailInfos.Length; i++) { objAvailabilityCalendarInfos[i] = new AvailabilityCalendarInfo(); objAvailabilityCalendarInfos[i].SegmentRefID = objHotelAvailabilityRS.HotelRoomAvailInfos[i].SegmentRefID; objAvailabilityCalendarInfos[i].AvailabilityCalendar = objHotelAvailabilityRS.HotelRoomAvailInfos[i].AvailabilityCalendar; } ucAvailCalSelectorControl.AvailCalendarSelectorMode = AvailCalendarSelectorMode.ViewCalendar; ucAvailCalSelectorControl.AvailabilityCalendarInfo = objAvailabilityCalendarInfos; ucAvailCalSelectorControl.SelectedDates = objAvailCalDateSelections; ucAvailCalSelectorControl.StayCriteriaSelection = objStayCriteriaSelection; ucAvailCalSelectorControl.Today = dtToday.Date; return; }
private string LowestAvailableRate(int intDayID, AvailabilityCalendarInfo[] objAvCalInfo, DateTime dtToday) { // Returns the lowest available room rate across all calendar instances for day identified decimal decLowestAvailableRate = 0; string strRateCurrencyCode = ""; bool bRateLoaded = false; for (int si = 0; si < objAvCalInfo.Length; si++) { for (int i = 0; i < objAvCalInfo[si].AvailabilityCalendar.RoomRates.Length; i++) { for (int j = 0; j < objAvCalInfo[si].AvailabilityCalendar.RoomRates[i].Rates.Length; j++) { if (objAvCalInfo[si].AvailabilityCalendar.RoomRates[i].Rates[j].DayNum == intDayID) { if (this.IsAvCalRoomRateAvailable(intDayID, objAvCalInfo[si].AvailabilityCalendar.RoomRates[i], objAvCalInfo[si].AvailabilityCalendar.RatePlans, objAvCalInfo[si].AvailabilityCalendar.StartDate, dtToday)) { if (!bRateLoaded) { decLowestAvailableRate = objAvCalInfo[si].AvailabilityCalendar.RoomRates[i].Rates[j].Amount; bRateLoaded = true; } else { if (objAvCalInfo[si].AvailabilityCalendar.RoomRates[i].Rates[j].Amount < decLowestAvailableRate) decLowestAvailableRate = objAvCalInfo[si].AvailabilityCalendar.RoomRates[i].Rates[j].Amount; } strRateCurrencyCode = this.RateCurrencyCode(objAvCalInfo[si].AvailabilityCalendar.RoomRates[i].RatePlanCode, objAvCalInfo[si].AvailabilityCalendar); ConvertCurrencyCodeToHtmlEntity(ref strRateCurrencyCode); } } } } } if (bRateLoaded) { return strRateCurrencyCode + decLowestAvailableRate.ToString("F0"); } return ""; }
private bool IsDayAvailable(int intDayID, AvailabilityCalendarInfo[] objAvCalInfo, DateTime dtToday) { // Returns true if at least one room rate is available in all calendar instances for day identified for (int i = 0; i < objAvCalInfo.Length; i++) { if (!this.IsAvCalDayAvailable(intDayID, objAvCalInfo[i].AvailabilityCalendar, dtToday)) return false; } return true; }
private bool HasRequestedRates(int intDayID, AvailabilityCalendarInfo[] objAvCalInfo, DateTime dtToday) { // Returns true if a requested (special) rate is available in any calendar instance for day identified for (int si = 0; si < objAvCalInfo.Length; si++) { for (int i = 0; i < objAvCalInfo[si].AvailabilityCalendar.RoomRates.Length; i++) { for (int j = 0; j < objAvCalInfo[si].AvailabilityCalendar.RoomRates[i].Rates.Length; j++) { if (objAvCalInfo[si].AvailabilityCalendar.RoomRates[i].Rates[j].DayNum == intDayID) { for (int k = 0; k < objAvCalInfo[si].AvailabilityCalendar.RatePlans.Length; k++) { if (objAvCalInfo[si].AvailabilityCalendar.RatePlans[k].RatePlanCode == objAvCalInfo[si].AvailabilityCalendar.RoomRates[i].RatePlanCode) { if (objAvCalInfo[si].AvailabilityCalendar.RatePlans[k].RatePlanType == RatePlanType.Negotiated || objAvCalInfo[si].AvailabilityCalendar.RatePlans[k].RatePlanType == RatePlanType.Consortia) return true; } } } } } } return false; }
private int CalendarDay(int intDayID, AvailabilityCalendarInfo[] objAvCalInfo) { if (objAvCalInfo.Length == 0) return 0; return objAvCalInfo[0].AvailabilityCalendar.StartDate.AddDays(intDayID - 1).Day; }