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(); } }
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(); } }