Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
 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);
 }
Beispiel #3
0
 private string CreateJetSession()
 {
     JetConnector connector = new JetConnector(_supplierInfo.GetSessionCreateService());
     JetModel.LogonRequest request = RequestTranslators.CreateLogonRequest(_supplierInfo);
     JetModel.LogonResponse response =
         connector.DoTransaction<JetModel.LogonRequest, JetModel.LogonResponse>(request);
     if (response == null || !string.Equals(response.LogonResult, "OK", StringComparison.InvariantCultureIgnoreCase))
         throw new Exception("JET API Session creation failed!!!");
     return response.Security.BinarySecurityToken;
 }
Beispiel #4
0
 private void IgnoreTransation(string securityToken, string sessionId)
 {
     using (new ApplicationContextScope(new ApplicationContext()))
     {
         ApplicationContext.Current.Items["SessionId"] = sessionId;
         try
         {
             JetConnector connector = new JetConnector(_supplierInfo.GetIgnoreService());
             JetModel.IgnoreRQRequest request = RequestTranslators.CreateIgnoreTransationRequest(_supplierInfo,
                                                                                                 securityToken);
             JetModel.IgnoreRQResponse response =
                 connector.DoTransaction<JetModel.IgnoreRQRequest, JetModel.IgnoreRQResponse>(request);
             if (response == null)
                 throw new Exception("JET API Ignore Transation failed!!!");
         }
         catch (Exception ex)
         {
             Logger.LogException(ex, Source, "IgnoreTransation", Severity.Major);
         }
     }
 }
Beispiel #5
0
 public List<AirItinerary> Search(FlightSearchParams searchParams)
 {
     using (new ApplicationContextScope(new ApplicationContext()))
     {
         ApplicationContext.Current.Items["SessionId"] = _supplierInfo["SessionId"];
         string securityToken = string.Empty;
         List<AirItinerary> itineraries = new List<AirItinerary>();
         try
         {
             //1. Get the securityToken
             securityToken = CreateJetSession();
             //2. Search flights
             JetConnector connector = new JetConnector(_supplierInfo.GetFlightMatrixService());
             JetModel.FlightMatrixRequestRequest searchRequest =
                 RequestTranslators.CreateFlightMatrixRequest(_supplierInfo, searchParams, securityToken);
             JetModel.FlightMatrixRequestResponse searchResponse =
                 connector.DoTransaction
                     <JetModel.FlightMatrixRequestRequest, JetModel.FlightMatrixRequestResponse>(
                         searchRequest);
             itineraries = ResponseTranslators.ParseSearchResponse(_supplierInfo, searchResponse, searchParams,
                                                                   ref securityToken);
             itineraries = itineraries.Distinct(new AirItinerary()).ToList();
         }
         catch (Exception ex)
         {
             Logger.LogException(ex, Source, "Search", Severity.Major);
         }
         finally
         {
             Task.Factory.StartNew(() => CloseJetSession(securityToken, _supplierInfo["SessionId"]));
         }
         return itineraries;
     }
 }