Exemple #1
0
 public BookingResponseSettingsBase(
     CarrierSchema carrierSchema   = CarrierSchema.Iata,
     LocationSchema locationSchema = LocationSchema.Iata)
 {
     CarrierSchema  = carrierSchema;
     LocationSchema = locationSchema;
 }
 public BookingQuerySettings(BookingRequestSettingsBase requestSettings,
                             CarrierSchema carrierSchema   = CarrierSchema.Iata,
                             LocationSchema locationSchema = LocationSchema.Iata)
 {
     BookingRequest  = requestSettings;
     BookingResponse = new BookingResponseSettingsBase(carrierSchema, locationSchema);
 }
 public BookingResponseSettings(Itinerary itinerary, CarrierSchema carrierSchema = CarrierSchema.Iata, LocationSchema locationSchema = LocationSchema.Iata)
 {
     FlightResponse = itinerary.FlightResponse;
     CarrierSchema = carrierSchema;
     LocationSchema = locationSchema;
     Itinerary = itinerary;
 }
Exemple #4
0
 public BookingResponseSettings(Itinerary itinerary,
                                CarrierSchema carrierSchema   = CarrierSchema.Iata,
                                LocationSchema locationSchema = LocationSchema.Iata)
     : base(carrierSchema, locationSchema)
 {
     FlightResponse = itinerary.FlightResponse;
     Itinerary      = itinerary;
 }
Exemple #5
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));
        }
Exemple #6
0
        /// <summary>
        /// Initializes a new instance of the FlightResponseSettings with the specified parameters
        /// </summary>
        /// <param name="sortType">The property to sort on</param>
        /// <param name="sortOrder">Sort direction</param>
        /// <param name="maxStops">Filter for maximum number of stops. Between 0 and 3</param>
        /// <param name="maxDuration">Filter for maximum duration in minutes</param>
        /// <param name="outboundDepartureTime">Filter for outbound departure time by time period of the day </param>
        /// <param name="outboundDepartureStartTime">Filter for start of range for outbound departure time</param>
        /// <param name="outboundDepartureEndTime">Filter for end of range for outbound departure time</param>
        /// <param name="inboundDepartureTime">Filter for inbound departure time by time period of the day </param>
        /// <param name="inboundDepartureStartTime">Filter for start of range for inbound departure time</param>
        /// <param name="inboundDepartureEndTime">Filter for end of range for inbound departure time</param>
        /// <param name="originAirports">Origin airports to filter on. List of airport codes</param>
        /// <param name="destinationAirports">Destination airports to filter on. List of airport codes</param>
        /// <param name="includeCarriers">Filter flights by the specified carriers. Must be Iata carrier codes</param>
        /// <param name="excludeCarriers">Filter flights by any but the specified carriers. Must be Iata carrier codes</param>
        /// <param name="carrierSchema">The code schema to use for carriers</param>
        /// <param name="locationSchema">The code schema used for locations</param>
        public FlightResponseSettings(
            SortType sortType = SortType.Price, SortOrder sortOrder = SortOrder.Ascending,
            int?maxStops      = null, int?maxDuration = null,
            DayTimePeriod?outboundDepartureTime  = null, LocalTime?outboundDepartureStartTime = null,
            LocalTime?outboundDepartureEndTime   = null,
            DayTimePeriod?inboundDepartureTime   = null, LocalTime?inboundDepartureStartTime = null,
            LocalTime?inboundDepartureEndTime    = null,
            IEnumerable <string> originAirports  = null, IEnumerable <string> destinationAirports    = null,
            IEnumerable <string> includeCarriers = null, IEnumerable <string> excludeCarriers        = null,
            CarrierSchema carrierSchema          = CarrierSchema.Iata, LocationSchema locationSchema = LocationSchema.Iata)
        {
            if (maxStops.HasValue && (maxStops.Value < 0 || maxStops.Value > 3))
            {
                throw new ArgumentException("The filter for maximum number of stops must be between 0 and 3", nameof(maxStops));
            }

            if (maxDuration.HasValue && (maxDuration.Value < 0 || maxDuration.Value > 1800))
            {
                throw new ArgumentException("The filter for maximum duration must be between 0 and 1800", nameof(maxDuration));
            }

            MaxDuration = maxDuration;
            MaxStops    = maxStops;

            SortOrder = sortOrder;
            SortType  = sortType;

            CarrierSchema  = carrierSchema;
            LocationSchema = locationSchema;

            OriginAirports      = originAirports;
            DestinationAirports = destinationAirports;
            IncludeCarriers     = includeCarriers;
            ExcludeCarriers     = excludeCarriers;

            OutboundDepartureTime      = outboundDepartureTime;
            OutboundDepartureStartTime = outboundDepartureStartTime;
            OutboundDepartureEndTime   = outboundDepartureEndTime;

            InboundDepartureTime      = inboundDepartureTime;
            InboundDepartureStartTime = inboundDepartureStartTime;
            InboundDepartureEndTime   = inboundDepartureEndTime;
        }
        /// <summary>
        /// Initializes a new instance of the FlightResponseSettings with the specified parameters
        /// </summary>
        /// <param name="sortType">The property to sort on</param>
        /// <param name="sortOrder">Sort direction</param>
        /// <param name="maxStops">Filter for maximum number of stops. Between 0 and 3</param>
        /// <param name="maxDuration">Filter for maximum duration in minutes</param>
        /// <param name="outboundDepartureTime">Filter for outbound departure time by time period of the day </param>
        /// <param name="outboundDepartureStartTime">Filter for start of range for outbound departure time</param>
        /// <param name="outboundDepartureEndTime">Filter for end of range for outbound departure time</param>
        /// <param name="inboundDepartureTime">Filter for inbound departure time by time period of the day </param>
        /// <param name="inboundDepartureStartTime">Filter for start of range for inbound departure time</param>
        /// <param name="inboundDepartureEndTime">Filter for end of range for inbound departure time</param>
        /// <param name="originAirports">Origin airports to filter on. List of airport codes</param>
        /// <param name="destinationAirports">Destination airports to filter on. List of airport codes</param>
        /// <param name="includeCarriers">Filter flights by the specified carriers. Must be Iata carrier codes</param>
        /// <param name="excludeCarriers">Filter flights by any but the specified carriers. Must be Iata carrier codes</param>
        /// <param name="carrierSchema">The code schema to use for carriers</param>
        /// <param name="locationSchema">The code schema used for locations</param>
        public FlightResponseSettings(
            SortType sortType = SortType.Price, SortOrder sortOrder = SortOrder.Ascending,
            int? maxStops = null, int? maxDuration = null,
            DayTimePeriod? outboundDepartureTime = null, LocalTime? outboundDepartureStartTime = null,
            LocalTime? outboundDepartureEndTime = null,
            DayTimePeriod? inboundDepartureTime = null, LocalTime? inboundDepartureStartTime = null,
            LocalTime? inboundDepartureEndTime = null,
            IEnumerable<string> originAirports = null, IEnumerable<string> destinationAirports = null,
            IEnumerable<string> includeCarriers = null, IEnumerable<string> excludeCarriers = null,
            CarrierSchema carrierSchema = CarrierSchema.Iata, LocationSchema locationSchema = LocationSchema.Iata)
        {
            if (maxStops.HasValue && (maxStops.Value < 0 || maxStops.Value > 3))
            {
                throw new ArgumentException("The filter for maximum number of stops must be between 0 and 3", nameof(maxStops));
            }

            if (maxDuration.HasValue && (maxDuration.Value < 0 || maxDuration.Value > 1800))
            {
                throw new ArgumentException("The filter for maximum duration must be between 0 and 1800", nameof(maxDuration));
            }

            MaxDuration = maxDuration;
            MaxStops = maxStops;

            SortOrder = sortOrder;
            SortType = sortType;

            CarrierSchema = carrierSchema;
            LocationSchema = locationSchema;

            OriginAirports = originAirports;
            DestinationAirports = destinationAirports;
            IncludeCarriers = includeCarriers;
            ExcludeCarriers = excludeCarriers;

            OutboundDepartureTime = outboundDepartureTime;
            OutboundDepartureStartTime = outboundDepartureStartTime;
            OutboundDepartureEndTime = outboundDepartureEndTime;

            InboundDepartureTime = inboundDepartureTime;
            InboundDepartureStartTime = inboundDepartureStartTime;
            InboundDepartureEndTime = inboundDepartureEndTime;
        }
        /// <summary>
        /// Initializes a new instance of the FlightRequestSettings with the specified parameters
        /// </summary>
        /// <param name="origin">The origin city or airport</param>
        /// <param name="destination">The destination city or airport</param>
        /// <param name="outboundDate">The departure date</param>
        /// <param name="inboundDate">The return date if the query is for a two-way flight</param>
        /// <param name="adults">Number of adults traveling (min 0, max 8)</param>
        /// <param name="children">Number of children traveling (min 0, max 8)</param>
        /// <param name="infants">Number of infants traveling (min 0, max number of adults)</param>
        /// <param name="groupPricing">Show price-per-adult (false), or price for all passengers (true)</param>
        /// <param name="cabinClass">Cabin class of the flight</param>
        /// <param name="marketCountry">The user’s market country</param>
        /// <param name="currency">The user’s currency</param>
        /// <param name="locale">The user’s localization preference</param>
        /// <param name="locationSchema">The code schema used for locations</param>
        public FlightRequestSettings(Location origin, Location destination, LocalDate outboundDate,
            LocalDate? inboundDate = null, int adults = 1, int children = 0, int infants = 0,
            bool groupPricing = true, CabinClass cabinClass = CabinClass.Economy,
            Market marketCountry = null, Currency currency = null, Locale locale = null,
            LocationSchema locationSchema = LocationSchema.Iata)
        {
            if (origin == null)
            {
                throw new ArgumentNullException(nameof(origin));
            }
            if (destination == null)
            {
                throw new ArgumentNullException(nameof(destination));
            }

            if (origin.PlaceId == destination.PlaceId)
            {
                throw new ArgumentException("Origin and destination are the same", nameof(destination));
            }

            if (inboundDate.HasValue && inboundDate.Value < outboundDate)
            {
                throw new ArgumentException("Return flight cannot be earlier than the outbound flight", nameof(outboundDate));
            }

            if (adults < 0 || adults > 8)
            {
                throw new ArgumentException("The number of adults traveling must be between 0 and 8", nameof(adults));
            }

            if (children < 0 || children > 8)
            {
                throw new ArgumentException("The number of children traveling must be between 0 and 8", nameof(children));
            }

            if (infants < 0 || infants > adults)
            {
                throw new ArgumentException("The number of infants traveling must be between 0 and the number of adults", nameof(infants));
            }

            if (adults == 0 && children == 0)
            {
                throw new ArgumentException("Can't search for 0 person", nameof(adults));

            }

            Origin = origin;
            Destination = destination;
            OutboundDate = outboundDate;

            InboundDate = inboundDate;

            Adults = adults;
            Children = children;
            Infants = infants;

            GroupPricing = groupPricing;
            CabinClass = cabinClass;

            MarketCountry = marketCountry ?? Market.Default;
            Currency = currency ?? Currency.Default;
            Locale = locale ?? Locale.Default;

            LocationSchema = locationSchema;
        }
Exemple #9
0
        /// <summary>
        /// Initializes a new instance of the FlightRequestSettings with the specified parameters
        /// </summary>
        /// <param name="origin">The origin city or airport</param>
        /// <param name="destination">The destination city or airport</param>
        /// <param name="outboundDate">The departure date</param>
        /// <param name="inboundDate">The return date if the query is for a two-way flight</param>
        /// <param name="adults">Number of adults traveling (min 0, max 8)</param>
        /// <param name="children">Number of children traveling (min 0, max 8)</param>
        /// <param name="infants">Number of infants traveling (min 0, max number of adults)</param>
        /// <param name="groupPricing">Show price-per-adult (false), or price for all passengers (true)</param>
        /// <param name="cabinClass">Cabin class of the flight</param>
        /// <param name="marketCountry">The user’s market country</param>
        /// <param name="currency">The user’s currency</param>
        /// <param name="locale">The user’s localization preference</param>
        /// <param name="locationSchema">The code schema used for locations</param>
        public FlightRequestSettings(Location origin, Location destination, LocalDate outboundDate,
                                     LocalDate?inboundDate         = null, int adults            = 1, int children = 0, int infants = 0,
                                     bool groupPricing             = true, CabinClass cabinClass = CabinClass.Economy,
                                     Market marketCountry          = null, Currency currency     = null, Locale locale = null,
                                     LocationSchema locationSchema = LocationSchema.Iata)
        {
            if (origin == null)
            {
                throw new ArgumentNullException(nameof(origin));
            }
            if (destination == null)
            {
                throw new ArgumentNullException(nameof(destination));
            }

            if (origin.PlaceId == destination.PlaceId)
            {
                throw new ArgumentException("Origin and destination are the same", nameof(destination));
            }

            if (inboundDate.HasValue && inboundDate.Value < outboundDate)
            {
                throw new ArgumentException("Return flight cannot be earlier than the outbound flight", nameof(outboundDate));
            }

            if (adults < 0 || adults > 8)
            {
                throw new ArgumentException("The number of adults traveling must be between 0 and 8", nameof(adults));
            }

            if (children < 0 || children > 8)
            {
                throw new ArgumentException("The number of children traveling must be between 0 and 8", nameof(children));
            }

            if (infants < 0 || infants > adults)
            {
                throw new ArgumentException("The number of infants traveling must be between 0 and the number of adults", nameof(infants));
            }

            if (adults == 0 && children == 0)
            {
                throw new ArgumentException("Can't search for 0 person", nameof(adults));
            }

            Origin       = origin;
            Destination  = destination;
            OutboundDate = outboundDate;

            InboundDate = inboundDate;

            Adults   = adults;
            Children = children;
            Infants  = infants;

            GroupPricing = groupPricing;
            CabinClass   = cabinClass;

            MarketCountry = marketCountry ?? Market.Default;
            Currency      = currency ?? Currency.Default;
            Locale        = locale ?? Locale.Default;

            LocationSchema = locationSchema;
        }