private string GetDepartureAirport(PNR_Reply pnr, string pnrNumber) { if (pnr == null) { return AIRPORT_IS_MISSING; } if (pnr.originDestinationDetails == null) { return AIRPORT_IS_MISSING; } if (pnr.originDestinationDetails.Count() == 1) { var originDestinationDetail = pnr.originDestinationDetails.First(); if (originDestinationDetail.itineraryInfo == null) { return AIRPORT_IS_MISSING; } if (originDestinationDetail.itineraryInfo.Count() > 0) { var itineraryInfo = originDestinationDetail.itineraryInfo.First(); var elementManagementItineraryLineNumber = ConvertToIntWithError(itineraryInfo.elementManagementItinerary.lineNumber, pnrNumber); foreach (var ii in originDestinationDetail.itineraryInfo) { if (ii.elementManagementItinerary != null) { var elementManagementItineraryLineNumber2 = ConvertToIntWithError(ii.elementManagementItinerary.lineNumber, pnrNumber); if (ii.elementManagementItinerary.segmentName.ToUpper().Trim() == ELEMENT_MANAGEMENT_ITINERARY_SEGMENT_NAME_AIR && elementManagementItineraryLineNumber2 < elementManagementItineraryLineNumber) { itineraryInfo = ii; elementManagementItineraryLineNumber = elementManagementItineraryLineNumber2; } } } var travelProduct = itineraryInfo.travelProduct; if (travelProduct == null) { return AIRPORT_IS_MISSING; } var boardpointDetail = travelProduct.boardpointDetail; if (boardpointDetail == null) { return AIRPORT_IS_MISSING; } var cityCode = boardpointDetail.cityCode; if (cityCode.Length == 3) { return cityCode; } else { throw new Exception(string.Format("Unexpected Error. DepartureCode is too long or short . PNR:{0}", pnrNumber)); } } throw new Exception(string.Format("Unexpected Error. No ItineraryInfo found for. PNR:{0}", pnrNumber)); } throw new Exception(string.Format("Unexpected Error. Too many originDestinationDetails were found. PNR:{0}", pnrNumber)); }
private string GetArrivalAirport(PNR_Reply pnr, string pnrNumber) { if (pnr == null) { return AIRPORT_IS_MISSING; } if (pnr.originDestinationDetails == null) { return AIRPORT_IS_MISSING; } if (pnr.originDestinationDetails.Count() == 1) { var originDestinationDetail = pnr.originDestinationDetails.First(); if (originDestinationDetail.itineraryInfo == null) { return AIRPORT_IS_MISSING; } if (originDestinationDetail.itineraryInfo.Count() > 0) { return GetDestinationAirport(originDestinationDetail.itineraryInfo, pnrNumber); } throw new Exception(string.Format("Unexpected Error. No ItineraryInfo found for. PNR:{0}", pnrNumber)); } throw new Exception(string.Format("Unexpected Error. Too many originDestinationDetails were found. PNR:{0}", pnrNumber)); }
private DateTime GetDepartureDate(PNR_Reply pnr, string pnrNumber) { if (pnr == null) { return DEPARTURE_DATE_IS_MISSING; } if (pnr.originDestinationDetails == null) { return DEPARTURE_DATE_IS_MISSING; } if (pnr.originDestinationDetails.Count() == 1) { var originDestinationDetail = pnr.originDestinationDetails.First(); if (originDestinationDetail.itineraryInfo == null) { return DEPARTURE_DATE_IS_MISSING; } if (originDestinationDetail.itineraryInfo.Count() > 0) { var itineraryInfo = originDestinationDetail.itineraryInfo.First(); var elementManagementItineraryLineNumber = ConvertToIntWithError(itineraryInfo.elementManagementItinerary.lineNumber, pnrNumber); foreach (var ii in originDestinationDetail.itineraryInfo) { if (ii.elementManagementItinerary != null) { var elementManagementItineraryLineNumber2 = ConvertToIntWithError(ii.elementManagementItinerary.lineNumber, pnrNumber); if (ii.elementManagementItinerary.segmentName.ToUpper().Trim() == ELEMENT_MANAGEMENT_ITINERARY_SEGMENT_NAME_AIR && elementManagementItineraryLineNumber2 < elementManagementItineraryLineNumber) { itineraryInfo = ii; elementManagementItineraryLineNumber = elementManagementItineraryLineNumber2; } } } var travelProduct = itineraryInfo.travelProduct; if (travelProduct == null) { return DEPARTURE_DATE_IS_MISSING; } var product = travelProduct.product; if (product == null) { return DEPARTURE_DATE_IS_MISSING; } var depDate = product.depDate; try { return DateTime.ParseExact(depDate, "ddMMyy", CultureInfo.InvariantCulture); } catch { throw new Exception(string.Format("Unexpected Error. Failed converting depDate. PNR:{0}", pnrNumber)); } } throw new Exception(string.Format("Unexpected Error. No ItineraryInfo found for. PNR:{0}", pnrNumber)); } throw new Exception(string.Format("Unexpected Error. Too many originDestinationDetails were found. PNR:{0}", pnrNumber)); }