コード例 #1
0
ファイル: AmadeusVendor.cs プロジェクト: GJBalaji/-
        public void SearchFlights()
        {
            try
            {

                var maxResultsNumber = 30;
                var travelBoardSearch = new Fare_MasterPricerTravelBoardSearch();
                var classType = ClassType.Economic;
                //ilość paxów
                var adultCount = 1;
                var childCount = 0;
                var infantCount = 0;
                var youthCount = 0;

                session = CreateSession(_username, _agencyCode, _organization, _pwd, _dataLength, false);

                travelBoardSearch.numberOfUnit = new NumberOfUnitDetailsType[2];
                travelBoardSearch.numberOfUnit[0] = new NumberOfUnitDetailsType
                {
                    numberOfUnits = (adultCount + childCount + youthCount).ToString(CultureInfo.InvariantCulture),
                    typeOfUnit = "PX"
                };

                //liczba zwracanych itemów
                travelBoardSearch.numberOfUnit[1] = new NumberOfUnitDetailsType()
                {
                    numberOfUnits = maxResultsNumber.ToString(CultureInfo.InvariantCulture),
                    typeOfUnit = "RC"
                };

                //definicja typów pasażerów
                var adultDefinition = AddPaxReference(null, adultCount, "ADT", 0);
                var youthDefinition = AddPaxReference(null, youthCount, "YTH", adultCount);
                var childDefinition = AddPaxReference(null, childCount, "CH", adultCount + youthCount);
                var infantDefinition = AddPaxReference(null, infantCount, "INF", 0);

                var paxReferenceCount = (adultDefinition != null ? 1 : 0)
                                        + (childDefinition != null ? 1 : 0)
                                        + (infantDefinition != null ? 1 : 0)
                                        + (youthDefinition != null ? 1 : 0);

                travelBoardSearch.paxReference = new TravellerReferenceInformationType[paxReferenceCount];

                paxReferenceCount = 0;
                if (adultDefinition != null) travelBoardSearch.paxReference[paxReferenceCount++] = adultDefinition;
                if (youthDefinition != null) travelBoardSearch.paxReference[paxReferenceCount++] = youthDefinition;
                if (childDefinition != null) travelBoardSearch.paxReference[paxReferenceCount++] = childDefinition;
                if (infantDefinition != null) travelBoardSearch.paxReference[paxReferenceCount] = infantDefinition;

                //definicja ServiceClass
                travelBoardSearch.travelFlightInfo = new TravelFlightInformationType();
                travelBoardSearch.travelFlightInfo.cabinId = new CabinIdentificationType { cabin = GetAmadeusServiceClass(classType) };

                //definicja segmentów lotu
                var departureAirportCode = "KTW";
                var arrivalAirportCode = "LON";
                var departureDate = new DateTime(2013, 3, 10);
                travelBoardSearch.itinerary = new[]
                {
                    BuildItinerary(1, departureAirportCode, arrivalAirportCode,departureDate)
                };

                //fare types
                travelBoardSearch.fareOptions = new Fare_MasterPricerTravelBoardSearchFareOptions
                {
                    pricingTickInfo = new PricingTicketingDetailsType{pricingTicketing = new string[4]}
                };

                travelBoardSearch.fareOptions.pricingTickInfo.pricingTicketing[0] = "TAC"; //ticketability - powoduje zwrócenie tylko lotów, dla których można utworzyć bilet (zalecane)
                travelBoardSearch.fareOptions.pricingTickInfo.pricingTicketing[1] = "RU"; // unifares
                travelBoardSearch.fareOptions.pricingTickInfo.pricingTicketing[2] = "RP"; // published
                travelBoardSearch.fareOptions.pricingTickInfo.pricingTicketing[3] = "ET"; // indicate to request Electronic Tickets recommendations only. Not the paper ones.

                //credit card fee
                travelBoardSearch.feeOption = new Fare_MasterPricerTravelBoardSearchFeeOption[1];
                travelBoardSearch.feeOption[0] = new Fare_MasterPricerTravelBoardSearchFeeOption();
                travelBoardSearch.feeOption[0].feeTypeInfo = new SelectionDetailsType();
                travelBoardSearch.feeOption[0].feeTypeInfo.carrierFeeDetails = new SelectionDetailsInformationType { type = "OB" };
                travelBoardSearch.feeOption[0].feeDetails = new Fare_MasterPricerTravelBoardSearchFeeOptionFeeDetails[1];
                travelBoardSearch.feeOption[0].feeDetails[0] = new Fare_MasterPricerTravelBoardSearchFeeOptionFeeDetails();
                travelBoardSearch.feeOption[0].feeDetails[0].feeInfo = new SpecificDataInformationType();
                travelBoardSearch.feeOption[0].feeDetails[0].feeInfo.dataTypeInformation = new DataTypeInformationType();
                travelBoardSearch.feeOption[0].feeDetails[0].feeInfo.dataTypeInformation.subType = "FCA";
                travelBoardSearch.feeOption[0].feeDetails[0].feeInfo.dataTypeInformation.option = "IN";

                IncrementSessionSequenceNumber();

                Fare_MasterPricerTravelBoardSearchReply response = null;

                try
                {
                    response = client.Fare_MasterPricerTravelBoardSearch(ref session, travelBoardSearch);
                }
                catch (Exception ex)
                {
                    if (ex.Message.Contains("12|Presentation|soap message header incorrect"))
                    {
                        CloseSession();
                        CreateSession(_username, _agencyCode, _organization, _pwd, _dataLength, false);
                        response = client.Fare_MasterPricerTravelBoardSearch(ref session, travelBoardSearch);
                    }
                    throw;
                }

            }
            finally
            {
                CloseSession();
            }
        }
コード例 #2
0
        public void SearchFlights()
        {
            try
            {
                var maxResultsNumber  = 30;
                var travelBoardSearch = new Fare_MasterPricerTravelBoardSearch();
                var classType         = ClassType.Economic;
                //ilość paxów
                var adultCount  = 1;
                var childCount  = 0;
                var infantCount = 0;
                var youthCount  = 0;

                session = CreateSession(_username, _agencyCode, _organization, _pwd, _dataLength, false);

                travelBoardSearch.numberOfUnit    = new NumberOfUnitDetailsType[2];
                travelBoardSearch.numberOfUnit[0] = new NumberOfUnitDetailsType
                {
                    numberOfUnits = (adultCount + childCount + youthCount).ToString(CultureInfo.InvariantCulture),
                    typeOfUnit    = "PX"
                };

                //liczba zwracanych itemów
                travelBoardSearch.numberOfUnit[1] = new NumberOfUnitDetailsType()
                {
                    numberOfUnits = maxResultsNumber.ToString(CultureInfo.InvariantCulture),
                    typeOfUnit    = "RC"
                };

                //definicja typów pasażerów
                var adultDefinition  = AddPaxReference(null, adultCount, "ADT", 0);
                var youthDefinition  = AddPaxReference(null, youthCount, "YTH", adultCount);
                var childDefinition  = AddPaxReference(null, childCount, "CH", adultCount + youthCount);
                var infantDefinition = AddPaxReference(null, infantCount, "INF", 0);


                var paxReferenceCount = (adultDefinition != null ? 1 : 0)
                                        + (childDefinition != null ? 1 : 0)
                                        + (infantDefinition != null ? 1 : 0)
                                        + (youthDefinition != null ? 1 : 0);

                travelBoardSearch.paxReference = new TravellerReferenceInformationType[paxReferenceCount];

                paxReferenceCount = 0;
                if (adultDefinition != null)
                {
                    travelBoardSearch.paxReference[paxReferenceCount++] = adultDefinition;
                }
                if (youthDefinition != null)
                {
                    travelBoardSearch.paxReference[paxReferenceCount++] = youthDefinition;
                }
                if (childDefinition != null)
                {
                    travelBoardSearch.paxReference[paxReferenceCount++] = childDefinition;
                }
                if (infantDefinition != null)
                {
                    travelBoardSearch.paxReference[paxReferenceCount] = infantDefinition;
                }

                //definicja ServiceClass
                travelBoardSearch.travelFlightInfo         = new TravelFlightInformationType();
                travelBoardSearch.travelFlightInfo.cabinId = new CabinIdentificationType {
                    cabin = GetAmadeusServiceClass(classType)
                };

                //definicja segmentów lotu
                var departureAirportCode = "KTW";
                var arrivalAirportCode   = "LON";
                var departureDate        = new DateTime(2013, 3, 10);
                travelBoardSearch.itinerary = new[]
                {
                    BuildItinerary(1, departureAirportCode, arrivalAirportCode, departureDate)
                };

                //fare types
                travelBoardSearch.fareOptions = new Fare_MasterPricerTravelBoardSearchFareOptions
                {
                    pricingTickInfo = new PricingTicketingDetailsType {
                        pricingTicketing = new string[4]
                    }
                };

                travelBoardSearch.fareOptions.pricingTickInfo.pricingTicketing[0] = "TAC"; //ticketability - powoduje zwrócenie tylko lotów, dla których można utworzyć bilet (zalecane)
                travelBoardSearch.fareOptions.pricingTickInfo.pricingTicketing[1] = "RU";  // unifares
                travelBoardSearch.fareOptions.pricingTickInfo.pricingTicketing[2] = "RP";  // published
                travelBoardSearch.fareOptions.pricingTickInfo.pricingTicketing[3] = "ET";  // indicate to request Electronic Tickets recommendations only. Not the paper ones.

                //credit card fee
                travelBoardSearch.feeOption                = new Fare_MasterPricerTravelBoardSearchFeeOption[1];
                travelBoardSearch.feeOption[0]             = new Fare_MasterPricerTravelBoardSearchFeeOption();
                travelBoardSearch.feeOption[0].feeTypeInfo = new SelectionDetailsType();
                travelBoardSearch.feeOption[0].feeTypeInfo.carrierFeeDetails = new SelectionDetailsInformationType {
                    type = "OB"
                };
                travelBoardSearch.feeOption[0].feeDetails            = new Fare_MasterPricerTravelBoardSearchFeeOptionFeeDetails[1];
                travelBoardSearch.feeOption[0].feeDetails[0]         = new Fare_MasterPricerTravelBoardSearchFeeOptionFeeDetails();
                travelBoardSearch.feeOption[0].feeDetails[0].feeInfo = new SpecificDataInformationType();
                travelBoardSearch.feeOption[0].feeDetails[0].feeInfo.dataTypeInformation         = new DataTypeInformationType();
                travelBoardSearch.feeOption[0].feeDetails[0].feeInfo.dataTypeInformation.subType = "FCA";
                travelBoardSearch.feeOption[0].feeDetails[0].feeInfo.dataTypeInformation.option  = "IN";

                IncrementSessionSequenceNumber();

                Fare_MasterPricerTravelBoardSearchReply response = null;

                try
                {
                    response = client.Fare_MasterPricerTravelBoardSearch(ref session, travelBoardSearch);
                }
                catch (Exception ex)
                {
                    if (ex.Message.Contains("12|Presentation|soap message header incorrect"))
                    {
                        CloseSession();
                        CreateSession(_username, _agencyCode, _organization, _pwd, _dataLength, false);
                        response = client.Fare_MasterPricerTravelBoardSearch(ref session, travelBoardSearch);
                    }
                    throw;
                }
            }
            finally
            {
                CloseSession();
            }
        }