private Security1 CreateSecurityDto(string securityToken) { Security1 security = new Security1(); security.BinarySecurityToken = securityToken; return(security); }
public HotelRateDescriptionRS GetPricing(HotelSelectDto searchCriteria) { Security1 sec = new Security1(); HotelRateDescriptionRQ req = new HotelRateDescriptionRQ(); HotelRateDescriptionRQAvailRequestSegment availSeg = new HotelRateDescriptionRQAvailRequestSegment(); HotelRateDescriptionRQAvailRequestSegmentGuestCounts guests = new HotelRateDescriptionRQAvailRequestSegmentGuestCounts(); HotelRateDescriptionRQAvailRequestSegmentHotelSearchCriteria searchCrit = new HotelRateDescriptionRQAvailRequestSegmentHotelSearchCriteria(); HotelRateDescriptionRQAvailRequestSegmentHotelSearchCriteriaCriterion criterian = new HotelRateDescriptionRQAvailRequestSegmentHotelSearchCriteriaCriterion(); HotelRateDescriptionRQAvailRequestSegmentHotelSearchCriteriaCriterionHotelRef hotelRef = new HotelRateDescriptionRQAvailRequestSegmentHotelSearchCriteriaCriterionHotelRef(); HotelRateDescriptionRQAvailRequestSegmentTimeSpan journeyDate = new HotelRateDescriptionRQAvailRequestSegmentTimeSpan(); HotelRateDescriptionRQAvailRequestSegmentRatePlanCandidates ratePlans = new HotelRateDescriptionRQAvailRequestSegmentRatePlanCandidates(); HotelRateDescriptionRQAvailRequestSegmentRatePlanCandidatesRatePlanCandidate ratePlan = new HotelRateDescriptionRQAvailRequestSegmentRatePlanCandidatesRatePlanCandidate(); var startDate = Convert.ToDateTime(searchCriteria.StartDate); var endDate = Convert.ToDateTime(searchCriteria.EndDate); journeyDate.Start = startDate.Month.ToString() + "-" + startDate.Day.ToString(); journeyDate.End = endDate.Month.ToString() + "-" + endDate.Day.ToString();; hotelRef.HotelCode = searchCriteria.HotelCode; criterian.HotelRef = hotelRef; searchCrit.Criterion = criterian; guests.Count = searchCriteria.TotalTravellers; ratePlan.RateCode = "USD"; ratePlan.RPH = searchCriteria.RPHNumber.TrimStart('0'); ratePlans.RatePlanCandidate = ratePlan; /*availSeg.HotelSearchCriteria = searchCrit; * availSeg.GuestCounts = guests; * availSeg.TimeSpan = journeyDate; */ availSeg.RatePlanCandidates = ratePlans; req.AvailRequestSegment = availSeg; HotelRateDescriptionService client = new HotelRateDescriptionService(); client.MessageHeaderValue = Get("HotelRateDescriptionLLSRQ", "HotelRateDescriptionRQ"); sec.BinarySecurityToken = searchCriteria.SessionId; client.Security = sec; var result = client.HotelRateDescriptionRQ(req); var XML = Common.Utility.Serialize(result); return(result); }
private Security1 CreateSecurityDto() { var session = SabreSessionManager.Create(); Security1 security = new Security1(); security.BinarySecurityToken = session.SecurityValue.BinarySecurityToken; return(security); }
public HotelPropertyDescriptionRS HotelDescription(HotelSelectDto search) { HotelPropertyDescriptionRQ hpdrq = new HotelPropertyDescriptionRQ(); hpdrq.AvailRequestSegment = new HotelPropertyDescriptionRQAvailRequestSegment(); hpdrq.AvailRequestSegment.GuestCounts = new HotelPropertyDescriptionRQAvailRequestSegmentGuestCounts(); hpdrq.AvailRequestSegment.GuestCounts.Count = search.TotalTravellers; hpdrq.AvailRequestSegment.HotelSearchCriteria = new HotelPropertyDescriptionRQAvailRequestSegmentHotelSearchCriteria(); hpdrq.AvailRequestSegment.HotelSearchCriteria.Criterion = new HotelPropertyDescriptionRQAvailRequestSegmentHotelSearchCriteriaCriterion(); hpdrq.AvailRequestSegment.HotelSearchCriteria.Criterion.HotelRef = new HotelPropertyDescriptionRQAvailRequestSegmentHotelSearchCriteriaCriterionHotelRef(); hpdrq.AvailRequestSegment.HotelSearchCriteria.Criterion.HotelRef.HotelCode = search.HotelCode; hpdrq.AvailRequestSegment.TimeSpan = new HotelPropertyDescriptionRQAvailRequestSegmentTimeSpan(); hpdrq.AvailRequestSegment.TimeSpan.Start = search.StartDate; hpdrq.AvailRequestSegment.TimeSpan.End = search.EndDate; Security1 security = new Security1(); security.BinarySecurityToken = search.SessionId; HotelPropertyDescriptionService hpds = new HotelPropertyDescriptionService(); hpds.MessageHeaderValue = this.CreateMessageHeader(); hpds.Security = security; var result = hpds.HotelPropertyDescriptionRQ(hpdrq); var XML = Common.Utility.Serialize(result); return(result); }
public OTA_HotelAvailRS Search(HotelSearchDto searchCriteria) { var session = SabreSessionManager.Create(); OTA_HotelAvailRQ availability = new OTA_HotelAvailRQ(); OTA_HotelAvailRQAvailRequestSegment req = new OTA_HotelAvailRQAvailRequestSegment(); OTA_HotelAvailRQAvailRequestSegmentHotelSearchCriteria crt = new OTA_HotelAvailRQAvailRequestSegmentHotelSearchCriteria(); OTA_HotelAvailRQAvailRequestSegmentHotelSearchCriteriaCriterion cirterian = new OTA_HotelAvailRQAvailRequestSegmentHotelSearchCriteriaCriterion(); OTA_HotelAvailRQAvailRequestSegmentHotelSearchCriteriaCriterionHotelRef[] refrs = new OTA_HotelAvailRQAvailRequestSegmentHotelSearchCriteriaCriterionHotelRef[1]; OTA_HotelAvailRQAvailRequestSegmentHotelSearchCriteriaCriterionHotelRef ref1 = new OTA_HotelAvailRQAvailRequestSegmentHotelSearchCriteriaCriterionHotelRef(); OTA_HotelAvailRQAvailRequestSegmentTimeSpan journeyDate = new OTA_HotelAvailRQAvailRequestSegmentTimeSpan(); OTA_HotelAvailRQAvailRequestSegmentGuestCounts guest = new OTA_HotelAvailRQAvailRequestSegmentGuestCounts(); Security1 sec = new Security1(); OTA_HotelAvailRQAvailRequestSegmentPOS pos = new OTA_HotelAvailRQAvailRequestSegmentPOS(); OTA_HotelAvailRQAvailRequestSegmentPOSSource source = new OTA_HotelAvailRQAvailRequestSegmentPOSSource(); OTA_HotelAvailRQAvailRequestSegmentRatePlanCandidates ratePlan = new OTA_HotelAvailRQAvailRequestSegmentRatePlanCandidates(); ratePlan.RateRange = new OTA_HotelAvailRQAvailRequestSegmentRatePlanCandidatesRateRange() { Min = "1" }; if (searchCriteria.Address != null && searchCriteria.Address != string.Empty) { ref1.HotelCityCode = searchCriteria.Address; } #pragma warning disable CS0472 // The result of the expression is always the same since a value of this type is never equal to 'null' if (searchCriteria.Latitude != null && searchCriteria.Longitude != null) #pragma warning restore CS0472 // The result of the expression is always the same since a value of this type is never equal to 'null' { ref1.Latitude = searchCriteria.Latitude.ToString("N2"); ref1.Longitude = searchCriteria.Longitude.ToString("N2"); } refrs[0] = ref1; cirterian.HotelRef = refrs; crt.Criterion = cirterian; req.HotelSearchCriteria = crt; guest.Count = searchCriteria.TotalGuest; req.GuestCounts = guest; crt.NumProperties = "30"; //req.po var startDate = Convert.ToDateTime(searchCriteria.StartDate); var endDate = Convert.ToDateTime(searchCriteria.EndDate); journeyDate.Start = startDate.ToString("MM-dd"); // .Month.ToString() + "-" + startDate.Day.ToString(); journeyDate.End = endDate.ToString("MM-dd"); //.Month.ToString() + "-" + endDate.Day.ToString(); req.TimeSpan = journeyDate; availability.AvailRequestSegment = req; OTA_HotelAvailService ss = new OTA_HotelAvailService(); sec.BinarySecurityToken = session.SecurityValue.BinarySecurityToken; ss.Security = sec; ss.MessageHeaderValue = Get("OTA_HotelAvailLLSRQ", ""); var XMLRequest = Common.Utility.Serialize(availability); var result = ss.OTA_HotelAvailRQ(availability); SessionClose close = new SessionClose(); close.Close(session.SecurityValue.BinarySecurityToken); var XML = Common.Utility.Serialize(result); return(result); }
/// <summary> /// Realiza la conexón al servicio web que despliega los detalles de un record /// y obtiene los valores necasarios para el cálculo de cargo por servicio y para /// la sabana de vuelo /// </summary> /// <param name="convid">Id de convención</param> /// <param name="ipcc">Pseudo que demanda el servicio</param> /// <param name="securitytoken">Codogo que permite el consumo del Web service</param> /// <param name="RecLoc">PNR a documentar</param> /// <returns></returns> public OTATravelItineraryObject TravelItineraryMethod(string convid, string ipcc, string securitytoken, string RecLoc) { //Objeto que contien toda la infomación que se requiere para el cargo por servicio //y para la sabana de vuelo OTATravelItineraryObject itineraryObject = new OTATravelItineraryObject(); try { #region ====== Connection with web service ====== itineraryObject.Status = true; DateTime dt = DateTime.UtcNow; string tstamp = dt.ToString("s") + "Z"; MessageHeader msgHeader = new MessageHeader(); msgHeader.ConversationId = convid; // Put ConversationId in req header From from = new From(); PartyId fromPartyId = new PartyId(); PartyId[] fromPartyIdArr = new PartyId[1]; fromPartyId.Value = "99999"; fromPartyIdArr[0] = fromPartyId; from.PartyId = fromPartyIdArr; msgHeader.From = from; To to = new To(); PartyId toPartyId = new PartyId(); PartyId[] toPartyIdArr = new PartyId[1]; toPartyId.Value = "123123"; toPartyIdArr[0] = toPartyId; to.PartyId = toPartyIdArr; msgHeader.To = to; msgHeader.CPAId = ipcc; msgHeader.Action = "TravelItineraryReadLLSRQ"; Service service = new Service(); service.Value = "Travel Itinerary Read"; msgHeader.Service = service; MessageData msgData = new MessageData(); msgData.MessageId = "mid:[email protected]"; msgData.Timestamp = tstamp; msgHeader.MessageData = msgData; Security1 security = new Security1(); security.BinarySecurityToken = securitytoken; // Put BinarySecurityToken in req header TravelItineraryReadRQMessagingDetails messageDetails = new TravelItineraryReadRQMessagingDetails(); messageDetails.Transaction = new TravelItineraryReadRQMessagingDetailsTransaction[] { new TravelItineraryReadRQMessagingDetailsTransaction() { Code = TravelItineraryReadRQMessagingDetailsTransactionCode.PNR } }; //Create the request object req and the value for the IPCC in the payload of the request. TravelItineraryReadRQ req = new TravelItineraryReadRQ(); //OTA_TravelItineraryReadRQ req2 = new OTA_TravelItineraryReadRQ(); //OTA_TravelItineraryReadRQPOS pos = new OTA_TravelItineraryReadRQPOS(); //OTA_TravelItineraryReadRQPOSSource source = new OTA_TravelItineraryReadRQPOSSource(); //source.PseudoCityCode = ipcc; //pos.Source = source; //req.POS = pos; req.Version = "2.2.0"; // Specify the service version //OTA_TravelItineraryReadRQTPA_Extensions tpa = new OTA_TravelItineraryReadRQTPA_Extensions(); //OTA_TravelItineraryReadRQTPA_ExtensionsMessagingDetails msj = new OTA_TravelItineraryReadRQTPA_ExtensionsMessagingDetails(); //OTA_TravelItineraryReadRQTPA_ExtensionsMessagingDetailsMDRSubset code = new OTA_TravelItineraryReadRQTPA_ExtensionsMessagingDetailsMDRSubset(); //code.Code = "PN43"; //msj.MDRSubset = code; //tpa.MessagingDetails = msj; //req.TPA_Extensions = tpa; TravelItineraryReadRQUniqueID uniqueID = new TravelItineraryReadRQUniqueID(); uniqueID.ID = RecLoc; req.UniqueID = uniqueID; req.MessagingDetails = messageDetails; req.TimeStamp = DateTime.Now; req.TimeStampSpecified = true; TravelItineraryReadService serviceObj = new TravelItineraryReadService(); serviceObj.MessageHeaderValue = msgHeader; serviceObj.Security = security; //Call the service and assign the response object. TravelItineraryReadRS resp = serviceObj.TravelItineraryReadRQ(req); // Send the request. //Retrieve data from the resp object, such as flight number and airline code, and display //it on standard output. the client can retrieve other data from the response the same way. #endregion #region ======== Parsing of the information ====== if (resp.ApplicationResults.Error != null) { foreach (ProblemInformation error in resp.ApplicationResults.Error) { foreach (SystemSpecificResults systemSpecificResults in error.SystemSpecificResults) { foreach (MessageCondition message in systemSpecificResults.Message) { if (!string.IsNullOrEmpty(itineraryObject.Response)) { itineraryObject.Response = string.Concat(itineraryObject.Response, ", "); } itineraryObject.Response = string.Concat(itineraryObject.Response, message.Value); itineraryObject.Status = false; } } } } else { #region ====== Instanciar Variables ====== itineraryObject.DepartureAirportList = new List <string>(); itineraryObject.ArrivalAirportList = new List <string>(); itineraryObject.DepartureDateTimeList = new List <string>(); itineraryObject.ArrivalDateTimeList = new List <string>(); itineraryObject.MarketingAirlineList = new List <string>(); itineraryObject.FlightNumberList = new List <string>(); itineraryObject.DepartureDateList = new List <string>(); itineraryObject.AirlineRefList = new List <string>(); itineraryObject.PassengerTypeList = new List <string>(); itineraryObject.FareBasisCodeList = new List <string>(); itineraryObject.GivenNameList = new List <string>(); itineraryObject.SurnameList = new List <string>(); itineraryObject.PaxNumberList = new List <string>(); #endregion ////////////////////////////////////////////////////////////// //Se obtine infomacion de los segmentos contenidos en el PNR// ////////////////////////////////////////////////////////////// if (resp.TravelItinerary.ItineraryInfo.ReservationItems != null) { for (int i = 0; i < resp.TravelItinerary.ItineraryInfo.ReservationItems.Length; i++) { if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment != null) { if (string.IsNullOrEmpty(itineraryObject.SegmentType)) { itineraryObject.SegmentType = "Air"; } else if (!itineraryObject.SegmentType.Contains("Air")) { itineraryObject.SegmentType = string.Concat(itineraryObject.SegmentType, " ", "Air"); } itineraryObject.DepartureAirportList.Add(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].OriginLocation.LocationCode); itineraryObject.ArrivalAirportList.Add(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].DestinationLocation.LocationCode); itineraryObject.DepartureDateTimeList.Add(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].DepartureDateTime.Substring(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].DepartureDateTime.Length - 5, 5)); itineraryObject.ArrivalDateTimeList.Add(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].ArrivalDateTime.Substring(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].ArrivalDateTime.Length - 5, 5)); itineraryObject.MarketingAirlineList.Add(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].MarketingAirline.Code); itineraryObject.FlightNumberList.Add(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].FlightNumber); itineraryObject.DepartureDateList.Add(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].DepartureDateTime); try { if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].SupplierRef.ID.Contains("*")) { itineraryObject.AirlineRefList.Add(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].SupplierRef.ID.Substring(5, 6)); } else { itineraryObject.AirlineRefList.Add(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].SupplierRef.ID); } } catch { itineraryObject.AirlineRefList.Add(null); } } else if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].AirTaxi != null) { if (string.IsNullOrEmpty(itineraryObject.SegmentType)) { itineraryObject.SegmentType = "AirTaxi"; } else if (!itineraryObject.SegmentType.Contains("AirTaxi")) { itineraryObject.SegmentType = string.Concat(itineraryObject.SegmentType, " ", "AirTaxi"); } } else if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Cruise != null) { if (string.IsNullOrEmpty(itineraryObject.SegmentType)) { itineraryObject.SegmentType = "Cruise"; } else if (!itineraryObject.SegmentType.Contains("Cruise")) { itineraryObject.SegmentType = string.Concat(itineraryObject.SegmentType, " ", "Cruise"); } } else if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel != null) { if (string.IsNullOrEmpty(itineraryObject.SegmentType)) { itineraryObject.SegmentType = "Hotel"; } else if (!itineraryObject.SegmentType.Contains("Hotel")) { itineraryObject.SegmentType = string.Concat(itineraryObject.SegmentType, " ", "Hotel"); } } else if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Insurance != null) { if (string.IsNullOrEmpty(itineraryObject.SegmentType)) { itineraryObject.SegmentType = "Insurance"; } else if (!itineraryObject.SegmentType.Contains("Insurance")) { itineraryObject.SegmentType = string.Concat(itineraryObject.SegmentType, " ", "Insurance"); } } else if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Rail != null) { if (string.IsNullOrEmpty(itineraryObject.SegmentType)) { itineraryObject.SegmentType = "Rail"; } else if (!itineraryObject.SegmentType.Contains("Rail")) { itineraryObject.SegmentType = string.Concat(itineraryObject.SegmentType, " ", "Rail"); } } else if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].RPH != null) { if (string.IsNullOrEmpty(itineraryObject.SegmentType)) { itineraryObject.SegmentType = "RPH"; } else if (!itineraryObject.SegmentType.Contains("RPH")) { itineraryObject.SegmentType = string.Concat(itineraryObject.SegmentType, " ", "RPH"); } } else if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Surface != null) { if (string.IsNullOrEmpty(itineraryObject.SegmentType)) { itineraryObject.SegmentType = "Surface"; } else if (!itineraryObject.SegmentType.Contains("Surface")) { itineraryObject.SegmentType = string.Concat(itineraryObject.SegmentType, " ", "Surface"); } } else if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Tour != null) { if (string.IsNullOrEmpty(itineraryObject.SegmentType)) { itineraryObject.SegmentType = "Tour"; } else if (!itineraryObject.SegmentType.Contains("Tour")) { itineraryObject.SegmentType = string.Concat(itineraryObject.SegmentType, " ", "Tour"); } } else if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle != null) { if (string.IsNullOrEmpty(itineraryObject.SegmentType)) { itineraryObject.SegmentType = "Vehicle"; } else if (!itineraryObject.SegmentType.Contains("Vehicle")) { itineraryObject.SegmentType = string.Concat(itineraryObject.SegmentType, " ", "Vehicle"); } } } } /////////////////////////////////////////////////////////// //Se obtiene el número de segmentos en el Record// /////////////////////////////////////////////////////////// itineraryObject.SegmentCount = Convert.ToString(itineraryObject.DepartureAirportList.Count); /////////////////////////////////////// //Se obtiene el fare basis code// /////////////////////////////////////// try { for (int k = 0; k < resp.TravelItinerary.ItineraryInfo.ItineraryPricing.PriceQuote.Length; k++) { if (resp.TravelItinerary.ItineraryInfo.ItineraryPricing.PriceQuote[k].PricedItinerary[0].AirItineraryPricingInfo.PTC_FareBreakdown[0].FareBasis != null) { itineraryObject.FareBasisCodeList.Add(Convert.ToString(resp.TravelItinerary.ItineraryInfo.ItineraryPricing.PriceQuote[k].PricedItinerary[0].AirItineraryPricingInfo.PTC_FareBreakdown[0].FareBasis[0])); } } } catch { } if (itineraryObject.FareBasisCodeList.Count > 0) { int auxiliar = itineraryObject.FareBasisCodeList.Count - 1; string[] fare = itineraryObject.FareBasisCodeList[auxiliar].Split(new char[] { ('/') }); for (int a = 0; a < fare.Length - 1; a++) { for (int k = a + 1; k < fare.Length; k++) { if ((fare[a] == "")) { break; } else if (fare[a] == fare[k]) { fare[k] = ""; } } } foreach (string auxi in fare) { if (!string.IsNullOrEmpty(auxi)) { itineraryObject.FareBasis = string.Concat(itineraryObject.FareBasis, " ", auxi).Trim(); } } } /////////////////////////////////////////// //Se obtiene información de los pasajeros// /////////////////////////////////////////// string temp = string.Empty; if (resp.TravelItinerary.CustomerInfo.PersonName[0].GroupInfo != null && resp.TravelItinerary.CustomerInfo.PersonName[0].GroupInfo.Name != null) { itineraryObject.IDGroup = resp.TravelItinerary.CustomerInfo.PersonName[0].GroupInfo.Name; for (int j = 1; j < resp.TravelItinerary.CustomerInfo.PersonName.Length; j++) { try { itineraryObject.PassengerTypeList.Add(Convert.ToString(resp.TravelItinerary.CustomerInfo.PersonName[j].PassengerType)); } catch { itineraryObject.PassengerTypeList.Add(string.Empty); } itineraryObject.GivenNameList.Add(resp.TravelItinerary.CustomerInfo.PersonName[j].GivenName); itineraryObject.SurnameList.Add(resp.TravelItinerary.CustomerInfo.PersonName[j].Surname); try { temp = resp.TravelItinerary.CustomerInfo.PersonName[j].NameNumber.Replace(".01", ".1"); } catch { temp = string.Concat(Convert.ToString(j), ".1"); } itineraryObject.PaxNumberList.Add(temp.TrimStart(new char[] { '0' })); } } else { for (int j = 0; j < resp.TravelItinerary.CustomerInfo.PersonName.Length; j++) { itineraryObject.PassengerTypeList.Add(Convert.ToString(resp.TravelItinerary.CustomerInfo.PersonName[j].PassengerType)); itineraryObject.GivenNameList.Add(resp.TravelItinerary.CustomerInfo.PersonName[j].GivenName); itineraryObject.SurnameList.Add(resp.TravelItinerary.CustomerInfo.PersonName[j].Surname); try { temp = resp.TravelItinerary.CustomerInfo.PersonName[j].NameNumber.Replace(".01", ".1"); itineraryObject.PaxNumberList.Add(temp.TrimStart(new char[] { '0' })); } catch { itineraryObject.PaxNumberList.Add(string.Concat(Convert.ToString(j + 1), ".1")); } } } /////////////////////// //Se obtiene DK y PCC// /////////////////////// itineraryObject.Location_DK = resp.TravelItinerary.ItineraryRef.CustomerIdentifier; itineraryObject.PCC = resp.TravelItinerary.ItineraryRef.Source.PseudoCityCode; } #endregion } catch { itineraryObject.Status = false; } return(itineraryObject); }
/// <summary> /// Realiza la conexón al servicio web que despliega los detalles de un record /// y obtiene los valores necasarios para el cálculo de cargo por servicio y para /// la sabana de vuelo /// </summary> /// <param name="convid">Id de convención</param> /// <param name="ipcc">Pseudo que demanda el servicio</param> /// <param name="securitytoken">Codogo que permite el consumo del Web service</param> /// <param name="RecLoc">PNR a documentar</param> /// <returns></returns> public GetInformationToDIXObject TravelItineraryMethod(string convid, string ipcc, string securitytoken, string RecLoc) { //Objeto que contien toda la infomación que se requiere para el cargo por servicio //y para la sabana de vuelo GetInformationToDIXObject itineraryObject = new GetInformationToDIXObject(); try { #region ====== Connection with web service ====== itineraryObject.Status = true; DateTime dt = DateTime.UtcNow; string tstamp = dt.ToString("s") + "Z"; MessageHeader msgHeader = new MessageHeader(); msgHeader.ConversationId = convid; // Put ConversationId in req header From from = new From(); PartyId fromPartyId = new PartyId(); PartyId[] fromPartyIdArr = new PartyId[1]; fromPartyId.Value = "99999"; fromPartyIdArr[0] = fromPartyId; from.PartyId = fromPartyIdArr; msgHeader.From = from; To to = new To(); PartyId toPartyId = new PartyId(); PartyId[] toPartyIdArr = new PartyId[1]; toPartyId.Value = "123123"; toPartyIdArr[0] = toPartyId; to.PartyId = toPartyIdArr; msgHeader.To = to; msgHeader.CPAId = ipcc; msgHeader.Action = "TravelItineraryReadLLSRQ"; Service service = new Service(); service.Value = "Travel Itinerary Read"; msgHeader.Service = service; MessageData msgData = new MessageData(); msgData.MessageId = "mid:[email protected]"; msgData.Timestamp = tstamp; msgHeader.MessageData = msgData; Security1 security = new Security1(); security.BinarySecurityToken = securitytoken; // Put BinarySecurityToken in req header TravelItineraryReadRQMessagingDetails messageDetails = new TravelItineraryReadRQMessagingDetails(); messageDetails.Transaction = new TravelItineraryReadRQMessagingDetailsTransaction[] { new TravelItineraryReadRQMessagingDetailsTransaction() { Code = TravelItineraryReadRQMessagingDetailsTransactionCode.PNR } }; //Create the request object req and the value for the IPCC in the payload of the request. TravelItineraryReadRQ req = new TravelItineraryReadRQ(); //OTA_TravelItineraryReadRQ req2 = new OTA_TravelItineraryReadRQ(); //OTA_TravelItineraryReadRQPOS pos = new OTA_TravelItineraryReadRQPOS(); //OTA_TravelItineraryReadRQPOSSource source = new OTA_TravelItineraryReadRQPOSSource(); //source.PseudoCityCode = ipcc; //pos.Source = source; //req.POS = pos; req.Version = "2.2.0"; // Specify the service version //OTA_TravelItineraryReadRQTPA_Extensions tpa = new OTA_TravelItineraryReadRQTPA_Extensions(); //OTA_TravelItineraryReadRQTPA_ExtensionsMessagingDetails msj = new OTA_TravelItineraryReadRQTPA_ExtensionsMessagingDetails(); //OTA_TravelItineraryReadRQTPA_ExtensionsMessagingDetailsMDRSubset code = new OTA_TravelItineraryReadRQTPA_ExtensionsMessagingDetailsMDRSubset(); //code.Code = "PN43"; //msj.MDRSubset = code; //tpa.MessagingDetails = msj; //req.TPA_Extensions = tpa; TravelItineraryReadRQUniqueID uniqueID = new TravelItineraryReadRQUniqueID(); uniqueID.ID = RecLoc; req.UniqueID = uniqueID; req.MessagingDetails = messageDetails; req.TimeStamp = DateTime.Now; req.TimeStampSpecified = true; TravelItineraryReadService serviceObj = new TravelItineraryReadService(); serviceObj.MessageHeaderValue = msgHeader; serviceObj.Security = security; //Call the service and assign the response object. TravelItineraryReadRS resp = serviceObj.TravelItineraryReadRQ(req); // Send the request. //Retrieve data from the resp object, such as flight number and airline code, and display //it on standard output. the client can retrieve other data from the response the same way. #endregion #region ======== Parsing of the information ====== if (resp.ApplicationResults.Error != null) { foreach (ProblemInformation error in resp.ApplicationResults.Error) { foreach (SystemSpecificResults systemSpecificResults in error.SystemSpecificResults) { foreach (MessageCondition message in systemSpecificResults.Message) { if (!string.IsNullOrEmpty(itineraryObject.Response)) { itineraryObject.Response = string.Concat(itineraryObject.Response, ", "); } itineraryObject.Response = string.Concat(itineraryObject.Response, message.Value); itineraryObject.Status = false; } } } } else { if (resp.TravelItinerary.CustomerInfo.PersonName[0].GroupInfo != null && resp.TravelItinerary.CustomerInfo.PersonName[0].GroupInfo.Name != null) //if (resp.TravelItinerary.CustomerInfos.CustomerInfo.Customer.PersonName[0].PassengerType == null) { itineraryObject.Response = "PNR OF GROUP"; return(itineraryObject); } else { itineraryObject.namePassengerList = new List <GetInformationToDIXObject.InformationPassenger>(); for (int i = 0; i < resp.TravelItinerary.CustomerInfo.PersonName.Length; i++) { GetInformationToDIXObject.InformationPassenger item = new GetInformationToDIXObject.InformationPassenger(); item.custLoyalty = new List <string>(); item.paxName = string.Concat(resp.TravelItinerary.CustomerInfo.PersonName[i].Surname, "/", resp.TravelItinerary.CustomerInfo.PersonName[i].GivenName); try { if (resp.TravelItinerary.CustomerInfo.PersonName[i].NameReference != null) { item.paxRef = resp.TravelItinerary.CustomerInfo.PersonName[i].NameReference; } else { item.paxRef = string.Empty; } } catch { item.paxRef = string.Empty; } try { item.paxNumber = resp.TravelItinerary.CustomerInfo.PersonName[i].NameNumber; } catch { item.paxNumber = string.Concat(Convert.ToString(i + 1), ".1"); } try { if (resp.TravelItinerary.CustomerInfo.CustLoyalty != null) { for (int k = 0; k < resp.TravelItinerary.CustomerInfo.CustLoyalty.Length; k++) { if (resp.TravelItinerary.CustomerInfo.CustLoyalty[k].NameNumber == item.paxNumber) { item.custLoyalty.Add(string.Concat(resp.TravelItinerary.CustomerInfo.CustLoyalty[k].TravelingCarrierCode, "-", resp.TravelItinerary.CustomerInfo.CustLoyalty[k].MembershipID)); } } } } catch { } itineraryObject.namePassengerList.Add(item); } } itineraryObject.LocationDK = resp.TravelItinerary.ItineraryRef.CustomerIdentifier; itineraryObject.Agent = resp.TravelItinerary.ItineraryRef.Source.CreationAgent.Substring(1, 2); itineraryObject.listItineraryInfo = new List <GetInformationToDIXObject.InformationItinerary>(); itineraryObject.segmentProtectionList = new List <GetInformationToDIXObject.InformationSegmentProtection>(); itineraryObject.autoList = new List <GetInformationToDIXObject.InformationAuto>(); itineraryObject.hotelList = new List <GetInformationToDIXObject.InformationHotel>(); if (resp.TravelItinerary.ItineraryInfo.ReservationItems != null) { for (int i = 0; i < resp.TravelItinerary.ItineraryInfo.ReservationItems.Length; i++) { if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment != null) { GetInformationToDIXObject.InformationItinerary item = new GetInformationToDIXObject.InformationItinerary(); item.segment = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].SegmentNumber.TrimStart(new char[] { '0' }); item.airline = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].MarketingAirline.Code; try { if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].SupplierRef.ID.Contains("*")) { item.airlineRef = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].SupplierRef.ID.Substring(5, 6); } else { item.airlineRef = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].SupplierRef.ID; } } catch { item.airlineRef = string.Empty; } if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].Meal != null) { for (int j = 0; j < resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].Meal.Length; j++) { if (!string.IsNullOrEmpty(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].Meal[j].Code)) { item.codeMeal = string.Concat(item.codeMeal, resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].Meal[j].Code).Trim(); } } } else { item.codeMeal = string.Empty; } item.dateFlight = Convert.ToDateTime(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].DepartureDateTime); item.dayFlight = Convert.ToString(Convert.ToDateTime(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].DepartureDateTime).DayOfWeek); item.dateArrival = DateTime.ParseExact(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].ArrivalDateTime, "MM-ddTHH:mm", System.Globalization.CultureInfo.CurrentCulture); item.destination = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].DestinationLocation.LocationCode; if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].ElapsedTime != null) { item.durationFlight = string.Concat(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].ElapsedTime.Substring(0, 2), "HR ", resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].ElapsedTime.Substring(3, 2), "MIN"); } else { item.durationFlight = string.Empty; } if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].Equipment != null) { item.equipment = string.Concat("EQP: ", resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].Equipment.AirEquipType); } else { item.equipment = string.Empty; } if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].StopQuantity != null) { item.escala = (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].StopQuantity == "00") ? false : true; } else { item.escala = false; } item.flightNumber = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].FlightNumber; if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].OperatingAirline != null) { item.operatingAirline = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].OperatingAirline[0].CompanyShortName; } else { item.operatingAirline = string.Empty; } item.origin = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].OriginLocation.LocationCode; item.resBookDesigCode = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].ResBookDesigCode; item.terminalArrival = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].DestinationLocation.Terminal; item.terminalDeparture = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].OriginLocation.Terminal; item.timeArrival = DateTime.ParseExact(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].ArrivalDateTime, "MM-ddTHH:mm", System.Globalization.CultureInfo.CurrentCulture).ToString("HH:mm"); item.timeDeparture = Convert.ToDateTime(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].DepartureDateTime).ToString("HH:mm"); itineraryObject.listItineraryInfo.Add(item); } else if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].MiscSegment != null) { GetInformationToDIXObject.InformationSegmentProtection item = new GetInformationToDIXObject.InformationSegmentProtection(); item.dateSegment = DateTime.ParseExact(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].MiscSegment.DepartureDateTime, "MM-dd", System.Globalization.CultureInfo.CurrentCulture).ToString("dd-MMM-yyyy").ToUpper(); item.daySegment = Convert.ToString(DateTime.ParseExact(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].MiscSegment.DepartureDateTime, "MM-dd", System.Globalization.CultureInfo.CurrentCulture).DayOfWeek); item.locationCode = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].MiscSegment.OriginLocation.LocationCode; if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].MiscSegment.Text != null) { item.textSegment = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].MiscSegment.Text[0]; } else { item.textSegment = string.Empty; } itineraryObject.segmentProtectionList.Add(item); } else if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle != null) { GetInformationToDIXObject.InformationAuto item = new GetInformationToDIXObject.InformationAuto(); try { item.dateRent = DateTime.ParseExact(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehRentalCore.PickUpDateTime, resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehRentalCore.PickUpDateTime.Length == 5 ? "MM-dd" : "MM-ddTHH:mm", System.Globalization.CultureInfo.CurrentCulture); if (item.dateRent.TimeOfDay.TotalSeconds == 0.0) { string aux = item.dateRent.ToString("dd-MM-yyyy"); aux = string.Concat(aux, " 11:59:59"); item.dateRent = Convert.ToDateTime(aux); } } catch { item.dateRent = Convert.ToDateTime(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehRentalCore.PickUpDateTime.Substring(0, 10)); if (item.dateRent.TimeOfDay.TotalSeconds == 0.0) { string aux = item.dateRent.ToString("dd-MM-yyyy"); aux = string.Concat(aux, " 11:59:59"); item.dateRent = Convert.ToDateTime(aux); } } try { item.hourStart = DateTime.ParseExact(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehRentalCore.PickUpDateTime, resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehRentalCore.PickUpDateTime.Length == 5 ? "MM-dd" : "MM-ddTHH:mm", System.Globalization.CultureInfo.CurrentCulture).ToString("HH:mm"); } catch { try { item.hourStart = Convert.ToDateTime(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehRentalCore.PickUpDateTime.Substring(0, 19)).ToString("HH:mm"); } catch { try { item.hourStart = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehRentalCore.PickUpDateTime.Substring(12, 3); } catch { item.hourStart = string.Empty; } } } item.locationCode = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehRentalCore.LocationDetails.LocationCode; item.vendorCode = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehVendorAvail.Vendor.Code; //item.hourStart = Convert.ToDateTime(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehRentalCore.PickUpDateTime).ToString("HH:mm"); item.dateReturnCar = string.Concat(DateTime.ParseExact(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehRentalCore.ReturnDateTime, resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehRentalCore.ReturnDateTime.Length == 5 ? "MM-dd" : "MM-ddTHH:mm", System.Globalization.CultureInfo.CurrentCulture).ToString("dd-MMM").ToUpper(), "/", DateTime.ParseExact(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehRentalCore.ReturnDateTime, resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehRentalCore.ReturnDateTime.Length == 5 ? "MM-dd" : "MM-ddTHH:mm", System.Globalization.CultureInfo.CurrentCulture).ToString("HH:mm")); item.equipType = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehVendorAvail.VehResCore.PricedEquip.Equipment.EquipType; item.confirmationNumber = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.ConfirmationNumber; try { item.mileage = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehVendorAvail.VehResCore.VehicleCharges.VehicleCharge.Mileage.ExtraMileageCharge; } catch { item.mileage = string.Empty; } try { for (int j = 0; j < resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehVendorAvail.VehResCore.VehicleCharges.VehicleCharge.ChargeDetails.Length; j++) { if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehVendorAvail.VehResCore.VehicleCharges.VehicleCharge.ChargeDetails[j].RateType == "WEEKLY RATE" || resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehVendorAvail.VehResCore.VehicleCharges.VehicleCharge.ChargeDetails[j].RateType == "DAILY RATE") { item.kilometraje = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehVendorAvail.VehResCore.VehicleCharges.VehicleCharge.ChargeDetails[j].Amount; break; } } } catch { item.kilometraje = string.Empty; } try { for (int j = 0; j < resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehVendorAvail.VehResCore.VehicleCharges.VehicleCharge.ChargeDetails.Length; j++) { if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehVendorAvail.VehResCore.VehicleCharges.VehicleCharge.ChargeDetails[j].RateType == "EXTRA DAY") { item.amount1 = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehVendorAvail.VehResCore.VehicleCharges.VehicleCharge.ChargeDetails[j].Amount; break; } } } catch { item.amount1 = string.Empty; } try { for (int j = 0; j < resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehVendorAvail.VehResCore.VehicleCharges.VehicleCharge.ChargeDetails.Length; j++) { if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehVendorAvail.VehResCore.VehicleCharges.VehicleCharge.ChargeDetails[j].RateType == "EXTRA HOUR") { item.amount2 = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehVendorAvail.VehResCore.VehicleCharges.VehicleCharge.ChargeDetails[j].Amount; break; } } } catch { item.amount2 = string.Empty; } try { item.corporateID = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehVendorAvail.VehResCore.RentalRate.Corporate.ID; } catch { item.corporateID = string.Empty; } try { item.clientID = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehVendorAvail.VehResCore.RentalRate.Client.ID; } catch { item.clientID = string.Empty; } try { foreach (TravelItineraryReadRSTravelItineraryCustomerInfoPersonName personname in resp.TravelItinerary.CustomerInfo.PersonName) { if (!string.IsNullOrEmpty(item.passengerName)) { item.passengerName = string.Concat(item.passengerName, ", "); } item.passengerName = string.Concat(item.passengerName, personname.GivenName, " ", personname.Surname).Trim(); } } catch { item.passengerName = string.Empty; } try { item.specialEquip = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.VehVendorAvail.VehResCore.PricedEquip.Equipment.SpecialEquip; } catch { item.specialEquip = string.Empty; } try { foreach (TravelItineraryReadRSTravelItineraryCustomerInfoContactNumber contactNumbers in resp.TravelItinerary.CustomerInfo.ContactNumbers) { if (!string.IsNullOrEmpty(item.phoneNumber)) { item.phoneNumber = string.Concat(item.phoneNumber, ", "); } item.phoneNumber = string.Concat(item.phoneNumber, contactNumbers.Phone); } } catch { item.phoneNumber = string.Empty; } itineraryObject.autoList.Add(item); } else if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel != null) { GetInformationToDIXObject.InformationHotel item = new GetInformationToDIXObject.InformationHotel(); item.startDate = DateTime.ParseExact(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.TimeSpan.Start, "MM-dd", System.Globalization.CultureInfo.CurrentCulture); if (item.startDate.TimeOfDay.TotalSeconds == 0.0) { string aux = item.startDate.ToString("dd-MM-yyyy"); aux = string.Concat(aux, " 11:59:59"); item.startDate = Convert.ToDateTime(aux); } item.hotelCityCode = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.BasicPropertyInfo.HotelCityCode; if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.BasicPropertyInfo.HotelName != null) { item.hotelName = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.BasicPropertyInfo.HotelName; } else { item.hotelName = string.Empty; } item.chainCode = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.BasicPropertyInfo.ChainCode; item.endDate = DateTime.ParseExact(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.TimeSpan.End, "MM-dd", System.Globalization.CultureInfo.CurrentCulture).ToString("dd-MMM").ToUpper(); try { item.duration = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.TimeSpan.Duration.TrimStart(new char[] { '0' }); } catch { DateTime start = DateTime.ParseExact(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.TimeSpan.Start, "MM-dd", System.Globalization.CultureInfo.CurrentCulture); DateTime end = DateTime.ParseExact(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.TimeSpan.End, "MM-dd", System.Globalization.CultureInfo.CurrentCulture); TimeSpan diference = end - start; item.duration = Convert.ToString(diference.Days); } if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.NumberOfUnits != null) { item.roomNumbers = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.NumberOfUnits; } else { item.roomNumbers = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.RoomRates.Rate.AdditionalGuestAmounts.NumExtraPersons.Length.ToString(); } item.shortText = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.RoomRates.Rate.RoomTypeCode; item.address = new List <string>(); try { for (int j = 0; j < resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.BasicPropertyInfo.Address.AddressLine.Length; j++) { item.address.Add(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.BasicPropertyInfo.Address.AddressLine[j]); } } catch { } try { item.confirmationNumber = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.BasicPropertyInfo.ConfirmationNumber[0]; } catch { item.confirmationNumber = string.Empty; } item.amount = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.RoomRates.Rate.Amount; try { item.correncyCode = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.RoomRates.Rate.CurrencyCode; } catch { item.correncyCode = string.Empty; } try { item.daysBeforeCancel = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.BasicPropertyInfo.CancelPenalty[0].PolicyCode; } catch { item.daysBeforeCancel = string.Empty; } try { item.phone = string.Concat("FONE ", resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.BasicPropertyInfo.ContactNumbers.ContactNumber.Phone); } catch { item.phone = string.Empty; } try { item.fax = string.Concat("FAX ", resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.BasicPropertyInfo.ContactNumbers.ContactNumber.Fax); } catch { item.fax = string.Empty; } try { item.specialPrefs = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.SpecialPrefs[0]; } catch { item.specialPrefs = string.Empty; } try { item.textAmount = resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.Text[0]; } catch { item.textAmount = string.Empty; } itineraryObject.hotelList.Add(item); } } } foreach (TravelItineraryReadRSTravelItineraryItineraryInfoItem reservationItem in resp.TravelItinerary.ItineraryInfo.ReservationItems) { if (reservationItem.Seats != null) { foreach (TravelItineraryReadRSTravelItineraryItineraryInfoItemSeat seat in reservationItem.Seats) { for (int i = 0; i < itineraryObject.listItineraryInfo.Count; i++) { if (seat.SegmentNumber.TrimStart(new char[] { '0' }) == itineraryObject.listItineraryInfo[i].segment) { GetInformationToDIXObject.InformationSeatsPassenger seatPax = new GetInformationToDIXObject.InformationSeatsPassenger(); seatPax.paxNumber = seat.NameNumber; seatPax.seatNumber = seat.Number; if (itineraryObject.listItineraryInfo[i].seatsNumber == null) { itineraryObject.listItineraryInfo[i].seatsNumber = new List <GetInformationToDIXObject.InformationSeatsPassenger>(); } itineraryObject.listItineraryInfo[i].seatsNumber.Add(seatPax); break; } } } } } itineraryObject.remarksList = new List <GetInformationToDIXObject.InformationRemarks>(); itineraryObject.remarkInvoicesList = new List <string>(); if (resp.TravelItinerary.RemarkInfo != null) { for (int i = 0; i < resp.TravelItinerary.RemarkInfo.Length; i++) { if (resp.TravelItinerary.RemarkInfo[i].Type == "Itinerary") { GetInformationToDIXObject.InformationRemarks item = new GetInformationToDIXObject.InformationRemarks(); item.remark = resp.TravelItinerary.RemarkInfo[i].Text; try { item.segmentNumber = resp.TravelItinerary.RemarkInfo[i].SegmentNumber; } catch { item.segmentNumber = string.Empty; } itineraryObject.remarksList.Add(item); } else if (resp.TravelItinerary.RemarkInfo[i].Type == "Client Address") { itineraryObject.remarkInvoicesList.Add(resp.TravelItinerary.RemarkInfo[i].Text); } } if (itineraryObject.remarkInvoicesList.Count == 0) { for (int j = 0; j < resp.TravelItinerary.RemarkInfo.Length; j++) { if (resp.TravelItinerary.RemarkInfo[j].Type == "Delivery") { itineraryObject.remarkInvoicesList.Add(resp.TravelItinerary.RemarkInfo[j].Text); } } } } } #endregion //Parsing of the information } catch { itineraryObject.Response = "ERROR EN LA LECTURA DEL RECORD, FAVOR DE REPORTARLO A SISTEMAS"; itineraryObject.Status = false; } return(itineraryObject); }