Пример #1
0
 /// <summary>
 /// Creates the air book request.
 /// </summary>
 /// <param name="data">The data.</param>
 /// <returns>The request</returns>
 private EnhancedAirBookRQOTA_AirBookRQ CreateAirBookRequest(IEnhancedAirBookData data)
 {
     return(new EnhancedAirBookRQOTA_AirBookRQ
     {
         OriginDestinationInformation = data.FlightSegments.Select(flightSegment =>
                                                                   new EnhancedAirBookRQOTA_AirBookRQFlightSegment
         {
             DepartureDateTime = flightSegment.DepartureDateTime.ToString("s", CultureInfo.InvariantCulture),
             FlightNumber = flightSegment.FlightNumber,
             NumberInParty = "1",
             ResBookDesigCode = flightSegment.DesignationCode,
             Status = "NN",
             DestinationLocation = new EnhancedAirBookRQOTA_AirBookRQFlightSegmentDestinationLocation {
                 LocationCode = flightSegment.DestinationLocationCode
             },
             OriginLocation = new EnhancedAirBookRQOTA_AirBookRQFlightSegmentOriginLocation {
                 LocationCode = flightSegment.OriginLocationCode
             },
             MarketingAirline = new EnhancedAirBookRQOTA_AirBookRQFlightSegmentMarketingAirline
             {
                 Code = flightSegment.MarketingAirlineCode,
                 FlightNumber = flightSegment.FlightNumber
             }
         }).ToArray()
     });
 }
Пример #2
0
        /// <summary>
        /// Runs the activity asynchronously.
        /// </summary>
        /// <param name="sharedContext">The shared context.</param>
        /// <returns>
        /// Next activity to be run or <c>null</c> if last in flow.
        /// </returns>
        /// <exception cref="ArgumentException">No data found under key:  + InputDataSharedContextKey</exception>
        public async Task <IActivity> RunAsync(SharedContext sharedContext)
        {
            var security = await this.sessionPool.TakeSessionAsync(sharedContext.ConversationId);

            var service = this.soapServiceFactory.CreateEnhancedAirBookService(sharedContext.ConversationId, security);
            IEnhancedAirBookData data = sharedContext.GetResult <IEnhancedAirBookData>(InputDataSharedContextKey);

            if (data == null)
            {
                throw new ArgumentException("No data found under key: " + InputDataSharedContextKey);
            }

            EnhancedAirBookRQ request = this.CreateRequest(data);

            sharedContext.AddSerializedResultXML(RequestXmlSharedContextKey, request);
            try
            {
                var result = service.EnhancedAirBookRQ(request);
                sharedContext.AddSerializedResultXML(ResponseXmlSharedContextKey, result);
                return(new PassengerDetailsAgencyActivity(this.soapServiceFactory, this.sessionPool));
            }
            catch (Exception ex)
            {
                sharedContext.AddResult(CommonConstants.ExceptionSharedContextKey, ex);
                sharedContext.IsFaulty = true;
                this.sessionPool.ReleaseSession(sharedContext.ConversationId);
                return(null);
            }
        }
Пример #3
0
 /// <summary>
 /// Creates the request.
 /// </summary>
 /// <param name="data">The data.</param>
 /// <returns>The EnhancedAirBook request.</returns>
 private EnhancedAirBookRQ CreateRequest(IEnhancedAirBookData data)
 {
     return(new EnhancedAirBookRQ
     {
         version = "3.2.0",
         IgnoreOnError2 = true,
         OTA_AirBookRQ = this.CreateAirBookRequest(data)
     });
 }