示例#1
0
        /// <summary>
        /// The Booking Details service can be used to drill down into an itinerary and get its full details, including
        /// the necessary deeplinks to actually make the booking.
        /// </summary>
        /// <param name="itinerary">The itinerary for which the booking details should be queried</param>
        /// <returns></returns>
        public async Task <BookingResponse> QueryBooking(Itinerary itinerary,
                                                         CancellationToken cancellationToken = default(CancellationToken))
        {
            var settings = new BookingQuerySettings(
                new BookingRequestSettings(itinerary.FlightResponse.SessionKey, itinerary),
                itinerary);

            return((BookingResponse) await QueryBooking(settings));
        }
示例#2
0
        private async Task <BookingResponseBase> QueryBooking(BookingQuerySettings settings,
                                                              CancellationToken cancellationToken = default(CancellationToken))
        {
            var bookingService = new Booking(_apiKey, settings);

            return(await _executionStrategy.Execute(async() =>
            {
                var pinger = await bookingService.SendQuery(cancellationToken);
                var response = await pinger.SendQuery(cancellationToken);
                return response;
            }, cancellationToken));
        }
示例#3
0
        public async Task <BookingResponseBase> QueryBooking(string sessionKey,
                                                             string outboundLegId, string inboundLegId,
                                                             CarrierSchema carrierSchema         = CarrierSchema.Iata,
                                                             LocationSchema locationSchema       = LocationSchema.Iata,
                                                             CancellationToken cancellationToken = default(CancellationToken))
        {
            var settings = new BookingQuerySettings(
                new BookingRequestSettingsBase(sessionKey, outboundLegId, inboundLegId),
                carrierSchema, locationSchema);

            return(await QueryBooking(settings, cancellationToken));
        }
示例#4
0
 public Booking(string apiKey, BookingQuerySettings querySettings)
     : base(apiKey, querySettings.BookingRequest)
 {
     _querySettings = querySettings;
 }