public bool BookingDecline(long BookingId, string ControlNumber = "") { try { BLayer.Bookings.SetStatus((int)CLayer.ObjectStatus.BookingStatus.Decline, BookingId); #region GDS Booking Cancel int InventoryAPIType = BLayer.Property.GetInventoryAPITypeId(BLayer.Bookings.GetPropertyId(BookingId)); if (InventoryAPIType == (int)CLayer.ObjectStatus.InventoryAPIType.Amadeus) { ControlNumber = BLayer.Bookings.GetGDSBookingControlNumber(BookingId); if (string.IsNullOrEmpty(ControlNumber)) { ControlNumber = Convert.ToString(System.Web.HttpContext.Current.Session["ControlNumber"]); } int OptionCode = (ControlNumber == "") ? 0 : (int)CLayer.ObjectStatus.PNROptionCodes.OptionPNRFinalize; string resultCancel = APIUtility.ExecutePNRCancel(ControlNumber, OptionCode); } #endregion } catch (Exception ex) { Common.LogHandler.HandleError(ex); return(false); } return(true); }
public bool BookingCancel(long BookingId, string ControlNumber = "") { try { BLayer.Bookings.SetStatus((int)CLayer.ObjectStatus.BookingStatus.Cancelled, BookingId); #region GDS Booking Cancel int InventoryAPIType = BLayer.Property.GetInventoryAPITypeId(BLayer.Bookings.GetPropertyId(BookingId)); if (InventoryAPIType == (int)CLayer.ObjectStatus.InventoryAPIType.Amadeus) { ControlNumber = BLayer.Bookings.GetGDSBookingControlNumber(BookingId); if (string.IsNullOrEmpty(ControlNumber)) { ControlNumber = Convert.ToString(System.Web.HttpContext.Current.Session["ControlNumber"]); } int OptionCode = (ControlNumber == "") ? 0 : (int)CLayer.ObjectStatus.PNROptionCodes.OptionPNRFinalize; string resultCancel = APIUtility.ExecutePNRCancel(ControlNumber, OptionCode); #region Transaction Log string LoggedInUser = Convert.ToString(System.Web.HttpContext.Current.Session["LoggedInUser"]); string currentUrl = string.Empty; try { APIUtility.GenerateGDSTransactionLog(currentUrl, resultCancel, Convert.ToInt32(LoggedInUser), (int)CLayer.ObjectStatus.GDSType.PNRCancel, BookingId); } catch (Exception ex) { APIUtility.GenerateGDSTransactionLog(currentUrl, resultCancel, Convert.ToInt32(LoggedInUser), (int)CLayer.ObjectStatus.GDSType.PNRCancel, BookingId); } #endregion Transaction log end } #endregion } catch (Exception ex) { Common.LogHandler.HandleError(ex); return(false); } return(true); }
public bool BookingDecline(long BookingId, string ControlNumber = "") { try { BLayer.Bookings.SetStatus((int)CLayer.ObjectStatus.BookingStatus.Cancelled, BookingId); #region GDS Booking Cancel int InventoryAPIType = BLayer.Property.GetInventoryAPITypeId(BLayer.Bookings.GetPropertyId(BookingId)); if (InventoryAPIType == (int)CLayer.ObjectStatus.InventoryAPIType.Amadeus) { ControlNumber = BLayer.Bookings.GetGDSBookingControlNumber(BookingId); int OptionCode = (ControlNumber == "") ? 0 : (int)CLayer.ObjectStatus.PNROptionCodes.OptionPNRFinalize; string resultCancel = APIUtility.ExecutePNRCancel(ControlNumber, OptionCode, true); } #endregion } catch (Exception ex) { LogHandler.LogError(ex); return(false); } return(true); }
public bool GDSBookingConfirm(long bookingId) { long propertyId = 0; bool returnvalue = false; int InventoryAPIType = 0; try { StayBazar.Controllers.BookingController objBookingController = new StayBazar.Controllers.BookingController(); long userId = objBookingController.GetUserId(); if (bookingId <= 0) { bookingId = BLayer.Bookings.GetCartId(userId); } string IpAdds = GetIPAddress(); propertyId = BLayer.BookingExternalInventory.GetPropertyIdByBookingId(bookingId); InventoryAPIType = BLayer.Property.GetInventoryAPITypeId(BLayer.Bookings.GetPropertyId(bookingId)); Session["InventoryAPIType"] = InventoryAPIType; ViewBag.AmadeusRates = TempData["AmadeusRates"]; TempData.Keep("AmadeusRates"); List <CLayer.BookingItem> bookitems = new List <CLayer.BookingItem>(); if (InventoryAPIType == (int)CLayer.ObjectStatus.InventoryAPIType.Amadeus) { bookitems = BLayer.BookingItem.GetAllDetails(bookingId, true); } else { bookitems = BLayer.BookingItem.GetAllDetails(bookingId); } string HotelId = BLayer.Property.GetHotelId(BLayer.Bookings.GetPropertyId(bookingId)); if (InventoryAPIType == (int)CLayer.ObjectStatus.InventoryAPIType.Amadeus) { #region HOTEL SELL string Action = BLayer.Settings.GetValue(CLayer.Settings.STAYBAZARWBSHOTELSELLACTION);; CLayer.SearchCriteria srch = new CLayer.SearchCriteria(); srch.HotelCode = HotelId; List <CLayer.RoomStaysResult> RoomStaysResultList = APIUtility.AmedusHotelRoomStaysResultList; RoomStaysResultList = (List <CLayer.RoomStaysResult>)TempData["RoomStaysResult"]; TempData.Keep("RoomStaysResult"); string SoapHeaderStateful = string.Empty; foreach (var item in RoomStaysResultList) { string BookingCode = item.BookingCode; string HotelSellSoapBody = APIUtility.Hotel_Sell(HotelId, BookingCode); SoapHeaderStateful = APIUtility.SetStatefulSoapHeader(Action, Session["SessionId"].ToString(), Convert.ToInt32(Session["SequenceNumber"]), Session["SecurityToken"].ToString()); string result = APIUtility.GetAmedusResult(Action, SoapHeaderStateful, HotelSellSoapBody); if (!APIUtility.CheckHotelBookingErrorExists(result)) { Serializer HotelSell = new Serializer(); CLayer.HotelSell.Envelope HotelSellResult = HotelSell.Deserialize <CLayer.HotelSell.Envelope>(result); Session["HotelSellStatus"] = "success"; Session["SessionId"] = HotelSellResult.Header.Session.SessionId; Session["SequenceNumber"] = Convert.ToInt32(HotelSellResult.Header.Session.SequenceNumber); Session["SecurityToken"] = HotelSellResult.Header.Session.SecurityToken; returnvalue = true; } else { Serializer HotelSellError = new Serializer(); CLayer.HotelSell.Envelope HotelSellErrorResult = HotelSellError.Deserialize <CLayer.HotelSell.Envelope>(result); Session["HotelSellStatus"] = "error"; Session["SessionId"] = HotelSellErrorResult.Header.Session.SessionId; Session["SequenceNumber"] = Convert.ToInt32(HotelSellErrorResult.Header.Session.SequenceNumber); Session["SecurityToken"] = HotelSellErrorResult.Header.Session.SecurityToken; ViewBag.HotelSellResult = "error"; TempData["Errorcomes"] = "error"; #region PNR CANCEL string resultCancel = APIUtility.ExecutePNRCancel("", (int)CLayer.ObjectStatus.PNROptionCodes.OptionPNRGeneration); returnvalue = false; #endregion } } #endregion #region PNR MULTIELEMENTS-FINAL Action = BLayer.Settings.GetValue(CLayer.Settings.STAYBAZARWBSPNRADDACTION);; SoapHeaderStateful = APIUtility.SetStatefulSoapHeader(Action, Session["SessionId"].ToString(), Convert.ToInt32(Session["SequenceNumber"]), Session["SecurityToken"].ToString()); APIUtility.SoapHeaderStateful = SoapHeaderStateful; string BookingCodeFinal = RoomStaysResultList.OrderBy(x => x.AmountAfterTax).FirstOrDefault().BookingCode; string PNRADDSoapBody = APIUtility.PNR_AddMultielements(HotelId, BookingCodeFinal, "*****@*****.**", 11); TempData["RoomStaysResult"] = RoomStaysResultList; APIUtility.AmedusHotelRoomStaysResultList = RoomStaysResultList; string resultFinal = APIUtility.GetAmedusResult(Action, APIUtility.SoapHeaderStateful, PNRADDSoapBody); Serializer pnrser = new Serializer(); CLayer.PNRAddElementsConfirm.Envelope PNRAddResult = pnrser.Deserialize <CLayer.PNRAddElementsConfirm.Envelope>(resultFinal); Session["ControlNumber"] = PNRAddResult.Body.PNR_Reply.pnrHeader.reservationInfo.reservation.controlNumber; if (APIUtility.CheckHotelBookingErrorExists(resultFinal)) { Serializer HotelSellError = new Serializer(); CLayer.HotelSell.Envelope HotelSellErrorResult = HotelSellError.Deserialize <CLayer.HotelSell.Envelope>(resultFinal); Session["HotelSellStatus"] = "error"; Session["SessionId"] = HotelSellErrorResult.Header.Session.SessionId; Session["SequenceNumber"] = Convert.ToInt32(HotelSellErrorResult.Header.Session.SequenceNumber); Session["SecurityToken"] = HotelSellErrorResult.Header.Session.SecurityToken; #region PNR CANCEL string ControlNumber = Convert.ToString(Session["ControlNumber"]); string resultCancel = APIUtility.ExecutePNRCancel(ControlNumber, (int)CLayer.ObjectStatus.PNROptionCodes.OptionPNRFinalize); returnvalue = false; #endregion } else { returnvalue = true; } #endregion List <CLayer.BookingItem> objBookItems = BLayer.BookingItem.GetAccomodationFromBookingCode(BookingCodeFinal); foreach (var item in objBookItems) { BLayer.BookingItem.UpdateHotelConfirmNumber(item.BookingId, item.AccommodationId, Convert.ToString(Session["ControlNumber"])); } } } catch (Exception ex) { returnvalue = false; throw ex; } return(returnvalue); }