internal static void ParseSellFlightResponse(JetModel.AirSellRQResponse sellResponse, ref AirItinerary airItinerary) { SetSecurityToken(sellResponse.Security, airItinerary); if (sellResponse == null || sellResponse.OTA_AirPriceRS == null || (sellResponse.OTA_AirPriceRS.Errors != null && sellResponse.OTA_AirPriceRS.Errors.Length > 0) || sellResponse.OTA_AirPriceRS.PricedItineraries == null || sellResponse.OTA_AirPriceRS.PricedItineraries.Length == 0 || sellResponse.OTA_AirPriceRS.PricedItineraries[0].AirItineraryPricingInfo == null || sellResponse.OTA_AirPriceRS.PricedItineraries[0].AirItineraryPricingInfo.PTC_FareBreakdowns == null || sellResponse.OTA_AirPriceRS.PricedItineraries[0].AirItineraryPricingInfo.PTC_FareBreakdowns.Length == 0) { throw new Exception("JET AirSell call failed while booking!!!"); } int adultCount = 0, infantCount = 0, childCount = 0; foreach (PassengerFare paxFare in airItinerary.AirFare.PassengerFares) { if (paxFare.PassengerType == PassengerType.Adult) adultCount = paxFare.Quantity; if (paxFare.PassengerType == PassengerType.Child) childCount = paxFare.Quantity; if (paxFare.PassengerType == PassengerType.Infant) infantCount = paxFare.Quantity; } AirFare airFare = ParsePassengerFareBreadowns( sellResponse.OTA_AirPriceRS.PricedItineraries[0].AirItineraryPricingInfo.PTC_FareBreakdowns, adultCount, childCount, infantCount, true); for (int i = 0; i < airFare.PassengerFares.Count;i++) { airFare.PassengerFares[i].CabinClass = airItinerary.AirFare.PassengerFares[0].CabinClass; airFare.PassengerFares[i].FareBasisCode = airItinerary.AirFare.PassengerFares[0].FareBasisCode; airFare.PassengerFares[i].ClassOfService = airItinerary.AirFare.PassengerFares[0].ClassOfService; } airItinerary.AirFare = airFare; }
internal static OTA_AirBookRQRequest CreateAirBookRequest(SupplierInfo supplierInfo, AirItinerary airItinerary, List<Passenger> passengers, List<Charge> charges, Account account) { OTA_AirBookRQRequest request = new OTA_AirBookRQRequest(); request.IsOnlyMockBooking = supplierInfo.IsOnlyMockBooking; request.IsMockEnabled = supplierInfo.IsMockEnabled; request.MessageHeader = CreateMessageHeader(supplierInfo, "OTA_AirBookRQ", "Create PNR"); request.Security = CreateSecurityHeader(supplierInfo, airItinerary[Constants.SecurityToken]); request.OTA_AirBookRQ = new OTA_AirBookRQ(); request.OTA_AirBookRQ.Version = 1.0m; request.OTA_AirBookRQ.TransactionStatusCode = TransactionStatusCode.End; request.OTA_AirBookRQ.TransactionStatusCodeSpecified = true; List<AirTravelerType> travellers = new List<AirTravelerType>(); int infantsCnt = passengers.GetInfantCount(); foreach (Passenger passenger in passengers) { AirTravelerType traveller = GetTravellerDetails(passenger, account, (travellers.Count).ToString()); travellers.Add(traveller); } List<AirTravelerType> adultTravellers = travellers.FindAll(tv => string.Equals(tv.PassengerTypeCode, "ADT")); for (int i = 0; i < adultTravellers.Count;i++) { if (i == 0) { adultTravellers[i].Telephone = new AirTravelerTypeTelephone[] { new AirTravelerTypeTelephone() { RPH = "1", PhoneLocationType = "M", PhoneNumber = account.Mobile, Operation = ActionType.Add, OperationSpecified = true } }; adultTravellers[i].Email = new Email[] { new Email() { RPH = "1", Value = account.Email, Operation = ActionType.Add, OperationSpecified = true } }; } if ((i + 1) <= infantsCnt) adultTravellers[i].AccompaniedByInfant = true; } if(string.Equals(supplierInfo.Mode,"Test")) { adultTravellers[0].PersonName.GivenName[0] = "ECOMM"; adultTravellers[0].PersonName.Surname = "ECOMMERCE"; } request.OTA_AirBookRQ.TravelerInfo = new TravelerInfoType(); request.OTA_AirBookRQ.TravelerInfo.AirTraveler = travellers.ToArray(); request.OTA_AirBookRQ.TravelerInfo.SpecialReqDetails = new SpecialReqDetailsType[1]; request.OTA_AirBookRQ.TravelerInfo.SpecialReqDetails[0] = new SpecialReqDetailsType(); return request; }
public string Book(AirItinerary airItinerary, List<Passenger> passengers, List<Charge> charges, Account account, out List<string> ticketNumbers) { using (new ApplicationContextScope(new ApplicationContext())) { ApplicationContext.Current.Items["SessionId"] = _supplierInfo["SessionId"]; string pnr = string.Empty; ticketNumbers = new List<string>(); try { //1. Get the securityToken airItinerary[Constants.SecurityToken] = CreateJetSession(); //2. Sell the flight segment SellFlightSegments(airItinerary); //3. Add passenger information JetConnector connector = new JetConnector(_supplierInfo.GetAirBookService()); JetModel.OTA_AirBookRQRequest bookRequest = RequestTranslators.CreateAirBookRequest(_supplierInfo, airItinerary, passengers, charges, account); JetModel.OTA_AirBookRQResponse bookResponse = connector.DoTransaction<JetModel.OTA_AirBookRQRequest, JetModel.OTA_AirBookRQResponse>( bookRequest); pnr = ResponseTranslators.GetPnrFromBookResponse(bookResponse, airItinerary); //4.Get Ticket Number try { connector._url = _supplierInfo.GetTicketService(); JetModel.AirTicketRQRequest ticketRequest = RequestTranslators.CreateAitTicketRequest(_supplierInfo, airItinerary, pnr); JetModel.AirTicketRQResponse ticketResponse = connector.DoTransaction<JetModel.AirTicketRQRequest, JetModel.AirTicketRQResponse>( ticketRequest); ticketNumbers = ResponseTranslators.GetTicketNumbers(ticketResponse, airItinerary); } catch (Exception ex) { Logger.LogException(ex, Source, "Ticket", Severity.Major); } } catch (Exception ex) { Logger.LogException(ex, Source, "Book", Severity.Major); } finally { Task.Factory.StartNew(() => CloseJetSession(airItinerary[Constants.SecurityToken], _supplierInfo["SessionId"])); } return pnr; } }
internal static string GetPnrFromBookResponse(JetModel.OTA_AirBookRQResponse bookResponse, AirItinerary airItinerary) { SetSecurityToken(bookResponse.Security, airItinerary); if (bookResponse == null || bookResponse.OTA_AirBookRS == null || (bookResponse.OTA_AirBookRS.Errors != null && bookResponse.OTA_AirBookRS.Errors.Length > 0) || bookResponse.OTA_AirBookRS.AirReservation == null || bookResponse.OTA_AirBookRS.AirReservation.Length == 0 || bookResponse.OTA_AirBookRS.AirReservation[0].BookingReferenceID == null || bookResponse.OTA_AirBookRS.AirReservation[0].BookingReferenceID.Length == 0 || string.IsNullOrEmpty(bookResponse.OTA_AirBookRS.AirReservation[0].BookingReferenceID[0].ID)) { throw new Exception("JET AirBook call failed while adding the passenger detials!!!"); } return bookResponse.OTA_AirBookRS.AirReservation[0].BookingReferenceID[0].ID; }
internal static List<string> GetTicketNumbers(JetModel.AirTicketRQResponse ticketResponse, AirItinerary itinerary) { SetSecurityToken(ticketResponse.Security, itinerary); if (ticketResponse == null || ticketResponse.OTA_AirBookRS == null || (ticketResponse.OTA_AirBookRS.Errors != null && ticketResponse.OTA_AirBookRS.Errors.Length > 0) || ticketResponse.OTA_AirBookRS.AirReservation == null || ticketResponse.OTA_AirBookRS.AirReservation.Length == 0 || ticketResponse.OTA_AirBookRS.AirReservation[0].Ticketing == null || ticketResponse.OTA_AirBookRS.AirReservation[0].Ticketing.TicketAdvisory == null || ticketResponse.OTA_AirBookRS.AirReservation[0].Ticketing.TicketAdvisory.Length == 0 || string.IsNullOrEmpty(ticketResponse.OTA_AirBookRS.AirReservation[0].Ticketing.TicketAdvisory[0].Value)) { throw new Exception("JET AirTicket call failed after booking!!!"); } List<string> ticketNumbers = new List<string>(); foreach (JetModel.FreeTextType ticketNumber in ticketResponse.OTA_AirBookRS.AirReservation[0].Ticketing.TicketAdvisory) { ticketNumbers.Add(ticketNumber.Value); } return ticketNumbers; }
public bool Book(string requestId, AirItinerary airItinerary, List<Passenger> passengers, List<Charge> charges, Account account, out string errorMessage, out Booking booking) { errorMessage = string.Empty; var mode = ConfigSettings.SupplierMode; booking = null; try { var supplierInfo = SupplierDataProviderFactory.GetSupplierDataProvider().GetSupplier(airItinerary.Provider, mode); var supplier = GetSupplier(supplierInfo); if (supplier != null) { List<string> ticketNumbers; string pnr = supplier.Book(airItinerary, passengers, charges, account, out ticketNumbers); if (!string.IsNullOrEmpty(pnr)) { var bookingDataProvider = BookingDataProviderFactory.CreateBookingDataProvider(); booking = CreateBooking(airItinerary, passengers, charges, pnr, requestId, account.AccountId, ticketNumbers); booking.TicketNumbers = ticketNumbers; return bookingDataProvider.CreateBooking(booking); } } } catch (Exception exception) { errorMessage = exception.Message; Logger.LogException(exception, "FlightProvider", "Price", Severity.Major); } return false; }
public bool Price(AirItinerary airItinerary, List<Charge> charges, out string errorMessage, out decimal chargeAmount) { errorMessage = string.Empty; chargeAmount = 0m; var mode = ConfigSettings.SupplierMode; try { var supplierInfo = SupplierDataProviderFactory.GetSupplierDataProvider().GetSupplier(airItinerary.Provider, mode); var supplier = GetSupplier(supplierInfo); if (supplier != null) { decimal oldTotalfare = airItinerary.AirFare.TotalFare; AirItinerary pricedItinerary = supplier.Price(airItinerary); ApplyFeesAndMarkup(pricedItinerary); if (!supplierInfo.IsMockEnabled) { if ((pricedItinerary.AirFare.TotalFare - oldTotalfare) > 1) { throw new Exception(string.Format("Pricing failed because of the price change(Old:{0} New:{1})! Please search again.", oldTotalfare, pricedItinerary.AirFare.TotalFare)); } } decimal chargesPaid = 0m; if (charges != null) charges.ForEach(x => chargesPaid += x.Amount); chargeAmount = airItinerary.AirFare.TotalFare - chargesPaid; } return true; } catch (Exception exception) { errorMessage = exception.Message; Logger.LogException(exception, "FlightProvider", "Price", Severity.Major); } return false; }
public bool Price(AirItinerary airItinerary, List<Charge> charges, out string errorMessage, out decimal chargeAmount) { errorMessage = null; chargeAmount = airItinerary.AirFare.TotalFare; return true; }
public AirItinerary GetRandomItinerary(string fromAirport, string toAirport, DateTime dateTime) { var itinerary = new AirItinerary { AirFare = new AirFare { }, Flights = new List<Flight>(), }; int flightNum = Rand.Next(1, 4); for (int number = 0; number < flightNum; number++) { int layoverMinutes = Rand.Next(60, 240); itinerary.Flights.Add( GetRandomFlight( number == 0 ? fromAirport : itinerary.Flights[itinerary.Flights.Count - 1].ToAirportCode, flightNum > number + 1 ? _airportCityDictionary.ElementAt(Rand.Next(_airportCityDictionary.Count)).Key : toAirport, number == 0 ? dateTime : itinerary.Flights[itinerary.Flights.Count - 1].ArrivalDateTime.AddMinutes(layoverMinutes), 0)); } itinerary.Provider = itinerary.Flights[0].AirlineName; decimal baseFare = decimal.Round(new decimal(Rand.Next(1000, 3000)), 2); var passengerFare = new PassengerFare { BaseFare = baseFare, Markups = new List<FareComponent> { new FareComponent { Amount = baseFare*15/100, Name = "Markup", Type = "Markup" } }, Fees = new List<FareComponent> { new FareComponent {Amount = 250, Name = "Service Fee", Type = "Fee"} }, Taxes = new List<FareComponent> { new FareComponent { Amount = decimal.Round(baseFare*125/1000), Name = "Tax", Type = "Tax" } } }; itinerary.AirFare.PassengerFares = new List<PassengerFare> { passengerFare }; return itinerary; }
public bool Book(string requestId, AirItinerary airItinerary, List<Passenger> passengers, List<Charge> charges, Account account, out string errorMessage, out Booking booking) { errorMessage = null; booking = null; return true; }
internal static AirPriceRsp AirPrice(List<typeBaseAirSegment> pricingSegments) { AirPriceReq priceReq = new AirPriceReq(); AirPriceRsp priceRsp; AddPointOfSale(priceReq, "UAPI"); AirItinerary itinerary = new AirItinerary(); List<typeBaseAirSegment> itinerarySegments = new List<typeBaseAirSegment>(); IEnumerator airSegments = pricingSegments.GetEnumerator(); while (airSegments.MoveNext()) { typeBaseAirSegment seg = (typeBaseAirSegment)airSegments.Current; seg.ProviderCode = "1G"; seg.FlightDetailsRef = null; itinerarySegments.Add(seg); } itinerary.AirSegment = itinerarySegments.ToArray(); priceReq.AirItinerary = itinerary; priceReq.SearchPassenger = AddSearchPassenger(); priceReq.AirPricingModifiers = new AirPricingModifiers() { PlatingCarrier = priceReq.AirItinerary.AirSegment[0].Carrier }; List<AirPricingCommand> pricingCommands = new List<AirPricingCommand>(); AirPricingCommand command = new AirPricingCommand() { CabinClass = "Economy"//You can use Economy,PremiumEconomy,Business etc. }; pricingCommands.Add(command); priceReq.AirPricingCommand = pricingCommands.ToArray(); priceReq.TargetBranch = CommonUtility.GetConfigValue(ProjectConstants.G_TARGET_BRANCH); AirPricePortTypeClient client = new AirPricePortTypeClient("AirPricePort", WsdlService.AIR_ENDPOINT); client.ClientCredentials.UserName.UserName = Helper.RetrunUsername(); client.ClientCredentials.UserName.Password = Helper.ReturnPassword(); try { var httpHeaders = Helper.ReturnHttpHeader(); client.Endpoint.EndpointBehaviors.Add(new HttpHeadersEndpointBehavior(httpHeaders)); priceRsp = client.service(priceReq); return priceRsp; } catch (Exception se) { Console.WriteLine("Error : " + se.Message); client.Abort(); return null; } }
private static List<AirItinerary> ParseFlightFares(Dictionary<int, FlightFares> jetFlightFares, FlightSearchParams searchParams, SupplierInfo supplierInfo) { List<AirItinerary> airItineraries = new List<AirItinerary>(); foreach (int flightKey in jetFlightFares.Keys) { foreach (int fareKey in jetFlightFares[flightKey].MatrixRowOptions.Keys) { try { JetModel.FlightMatrixOption fareOption = jetFlightFares[flightKey].MatrixRowOptions[fareKey]; if (fareOption != null) { AirFare airFare = ParsePassengerFareBreadowns(fareOption.PTC_FareBreakdown, searchParams.Adults, searchParams.Children, searchParams.Infants, false); if (airFare != null) { List<Flight> flights = ParseFlightMatrixRow(jetFlightFares[flightKey].MatrixRow); if (flights == null || flights.Count == 0) continue; //Assign CabinClass, FareBasisCodesm and ClassOfService to each flight segment. string[] cabinClasses = airFare.PassengerFares[0].CabinClass.Split(','); string[] fareBasisCodes = airFare.PassengerFares[0].FareBasisCode.Split(','); string[] classOfServices = airFare.PassengerFares[0].ClassOfService.Split(','); for (int i = 0; i < flights.Count; i++) { int index = i >= cabinClasses.Length ? cabinClasses.Length - 1 : i; flights[i].CabinClass = cabinClasses[index]; index = i >= classOfServices.Length ? classOfServices.Length - 1 : i; flights[i].ClassOfService = classOfServices[index]; index = i >= fareBasisCodes.Length ? fareBasisCodes.Length - 1 : i; flights[i].FareBasisCode = fareBasisCodes[index]; } AirItinerary itinerary = new AirItinerary(); itinerary.JourneyType = "OneWay"; itinerary.AirFare = airFare; itinerary.Flights = flights; itinerary.Index = airItineraries.Count; itinerary.Provider = supplierInfo.Provider; itinerary.Mode = supplierInfo.Mode; airItineraries.Add(itinerary); } } } catch (Exception ex) { Logger.LogException(ex, Source, "ParseFlightFares", Severity.Major); } } } return airItineraries; }
internal static string SetSecurityToken(JetModel.Security securityInfo, AirItinerary itinerary) { if(securityInfo == null || string.IsNullOrEmpty(securityInfo.BinarySecurityToken)) throw new Exception("Invalid security information received from JET."); if( itinerary != null ) itinerary[Constants.SecurityToken] = securityInfo.BinarySecurityToken; return securityInfo.BinarySecurityToken; }
public AirItinerary Price(AirItinerary airItinerary) { using (new ApplicationContextScope(new ApplicationContext())) { ApplicationContext.Current.Items["SessionId"] = _supplierInfo["SessionId"]; try { //1. Get the securityToken airItinerary[Constants.SecurityToken] = CreateJetSession(); //2. Sell the flight segment SellFlightSegments(airItinerary); } catch (Exception ex) { Logger.LogException(ex, Source, "Book", Severity.Major); } finally { Task.Factory.StartNew(() => IgnoreTransation(airItinerary[Constants.SecurityToken], _supplierInfo["SessionId"])); } return airItinerary; } }
private static Booking CreateBooking(AirItinerary airItinerary, List<Passenger> passengers, List<Charge> charges, string pnr, string requestId, string accountId, List<string> ticketNumbers) { return new Booking { AddedOn = DateTime.Now, AccountId = accountId, BookingStatus = "Booked", BookingType = "Air", Charges = charges, FlightBookings = new List<AirPnr> { new AirPnr { AirFare = airItinerary.AirFare, BookingStatus = "Booked", Flights = airItinerary.Flights, JourneyType = airItinerary.JourneyType, Mode = airItinerary.Mode, Passengers = passengers, Pnr = pnr, Provider = airItinerary.Provider, RequestId = requestId, TicketNumbers = string.Join(",", ticketNumbers.ToArray()), } }, PassengerCount = passengers.Count, TravelDate = airItinerary.Flights[0].DepartureDateTime, TravelEndDate = airItinerary.Flights[airItinerary.Flights.Count - 1].ArrivalDateTime }; }
private void ApplyFeesAndMarkup(AirItinerary airItinerary) { airItinerary.AirFare.PassengerFares.ForEach(y => y.Fees. AddRange(new List<FareComponent> { new FareComponent { Amount = 250, Name = "udChalo Service Charge", Type = "Fee" }, new FareComponent { Amount = Math. Round( (airItinerary. AirFare . TotalFare + 250)* 0.02m, 0, MidpointRounding . AwayFromZero), Name = "Merchant Fee", Type = "Fee" } })); }
internal static AirSellRQRequest CreateAirSellRequest(SupplierInfo supplierInfo, AirItinerary airItinerary, string status = "NN") { AirSellRQRequest request = new AirSellRQRequest(); request.IsOnlyMockBooking = supplierInfo.IsOnlyMockBooking; request.IsMockEnabled = supplierInfo.IsMockEnabled; int adultCount =0, infantCount=0, childCount=0; foreach (PassengerFare paxFare in airItinerary.AirFare.PassengerFares) { if (paxFare.PassengerType == PassengerType.Adult) adultCount = adultCount + paxFare.Quantity; if (paxFare.PassengerType == PassengerType.Child) childCount = childCount + paxFare.Quantity; if (paxFare.PassengerType == PassengerType.Infant) infantCount = infantCount + paxFare.Quantity; } request.MessageHeader = CreateMessageHeader(supplierInfo, "OTA_AirSellService", "AirSellRQ"); request.Security = CreateSecurityHeader(supplierInfo, airItinerary[Constants.SecurityToken]); request.OTA_AirPriceRQ = new OTA_AirPriceRQ(); request.OTA_AirPriceRQ.AirItinerary = new AirItineraryType(); request.OTA_AirPriceRQ.AirItinerary.DirectionInd = AirTripType.OneWay; request.OTA_AirPriceRQ.AirItinerary.DirectionIndSpecified = true; List<BookFlightSegmentType> segments = new List<BookFlightSegmentType>(); foreach (Flight flight in airItinerary.Flights) { BookFlightSegmentType segment = new BookFlightSegmentType() { RPH = flight.Index.ToString(), ArrivalAirport = new ArrivalAirport() { LocationCode = flight.ToAirportCode }, ArrivalDateTime = flight.ArrivalDateTime, DepartureAirport = new DepartureAirport() {LocationCode = flight.FromAirportCode}, DepartureDateTime = flight.DepartureDateTime, FlightNumber = flight.FlightNumber, ResBookDesigCode = flight.ClassOfService, NumberInParty = (adultCount + childCount + infantCount).ToString(), Status = status, OperatingAirline = new OperatingAirlineType() { Code = flight.AirlineCode }, MarketingAirline = new MarketingAirline() { Code = flight.MarketingAirlineCode }, }; segments.Add(segment); } request.OTA_AirPriceRQ.AirItinerary.OriginDestinationOptions = new BookFlightSegmentType[1][]; request.OTA_AirPriceRQ.AirItinerary.OriginDestinationOptions[0] = segments.ToArray(); List<TravelerInformationType> travellers = GetTravellersInfo(adultCount , childCount, infantCount); request.OTA_AirPriceRQ.TravelerInfoSummary = new TravelerInfoSummaryType(); request.OTA_AirPriceRQ.TravelerInfoSummary.AirTravelerAvail = travellers.ToArray(); return request; }
public void PriceTest() { var target = new MockFlightProvider(); var airItinerary = new AirItinerary { AirFare = new AirFare { PassengerFares = new List<PassengerFare> { new PassengerFare {BaseFare = 120, Quantity = 1} } } }; List<Charge> charges = null; string errorMessage = string.Empty; string errorMessageExpected = string.Empty; var chargeAmount = new Decimal(); Decimal chargeAmountExpected = 120; bool expected = true; bool actual; actual = target.Price(airItinerary, charges, out errorMessage, out chargeAmount); Assert.AreEqual(chargeAmountExpected, chargeAmount); Assert.AreEqual(expected, actual); }
internal static AirTicketRQRequest CreateAitTicketRequest(SupplierInfo supplierInfo, AirItinerary airItinerary, string pnr) { AirTicketRQRequest request = new AirTicketRQRequest(); request.IsOnlyMockBooking = supplierInfo.IsOnlyMockBooking; request.IsMockEnabled = supplierInfo.IsMockEnabled; request.MessageHeader = CreateMessageHeader(supplierInfo, "AirTicketRQ", "Ticket PNR"); request.Security = CreateSecurityHeader(supplierInfo, airItinerary[Constants.SecurityToken]); request.OTA_AirBookRQ = new OTA_AirBookRQ() { Ticketing = new TicketingInfoType() {TicketType = TicketType.eTicket}, BookingReferenceID = new UniqueID_Type() {ID = pnr}, }; request.OTA_AirBookRQ.TransactionStatusCodeSpecified = true; request.OTA_AirBookRQ.TransactionStatusCode = TransactionStatusCode.End; return request; }
internal static AirPriceRsp AirPrice(List <typeBaseAirSegment> pricingSegments) { AirPriceReq priceReq = new AirPriceReq(); AirPriceRsp priceRsp; AddPointOfSale(priceReq, "UAPI"); AirItinerary itinerary = new AirItinerary(); List <typeBaseAirSegment> itinerarySegments = new List <typeBaseAirSegment>(); IEnumerator airSegments = pricingSegments.GetEnumerator(); while (airSegments.MoveNext()) { typeBaseAirSegment seg = (typeBaseAirSegment)airSegments.Current; seg.ProviderCode = "1G"; seg.FlightDetailsRef = null; seg.ClassOfService = "Y"; itinerarySegments.Add(seg); } itinerary.AirSegment = itinerarySegments.ToArray(); priceReq.AirItinerary = itinerary; priceReq.SearchPassenger = AddSearchPassenger(); priceReq.AirPricingModifiers = new AirPricingModifiers() { PlatingCarrier = priceReq.AirItinerary.AirSegment[0].Carrier }; List <AirPricingCommand> pricingCommands = new List <AirPricingCommand>(); AirPricingCommand command = new AirPricingCommand() { CabinClass = "Economy"//You can use Economy,PremiumEconomy,Business etc. }; pricingCommands.Add(command); priceReq.AirPricingCommand = pricingCommands.ToArray(); priceReq.TargetBranch = CommonUtility.GetConfigValue(ProjectConstants.G_TARGET_BRANCH); AirPricePortTypeClient client = new AirPricePortTypeClient("AirPricePort", WsdlService.AIR_ENDPOINT); client.ClientCredentials.UserName.UserName = Helper.RetrunUsername(); client.ClientCredentials.UserName.Password = Helper.ReturnPassword(); try { var httpHeaders = Helper.ReturnHttpHeader(); client.Endpoint.EndpointBehaviors.Add(new HttpHeadersEndpointBehavior(httpHeaders)); priceRsp = client.service(null, priceReq); return(priceRsp); } catch (Exception se) { Console.WriteLine("Error : " + se.Message); client.Abort(); return(null); } }
private void SellFlightSegments(AirItinerary airItinerary) { JetConnector connector = new JetConnector(_supplierInfo.GetAirSellService()); JetModel.AirSellRQRequest sellRequest = RequestTranslators.CreateAirSellRequest(_supplierInfo, airItinerary); JetModel.AirSellRQResponse sellResponse = connector.DoTransaction<JetModel.AirSellRQRequest, JetModel.AirSellRQResponse>(sellRequest); ResponseTranslators.ParseSellFlightResponse(sellResponse, ref airItinerary); }