/// <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)); }
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)); }
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)); }
public Booking(string apiKey, BookingQuerySettings querySettings) : base(apiKey, querySettings.BookingRequest) { _querySettings = querySettings; }