//生成国外航班的FlightResponse返回值 private IntlFlightResponse GenerateResultsFromIntl(OTA_IntlFlightSearchCallReturnEntiy _returnEntity) { List<ShoppingResultInfo> resultInfos = _returnEntity.ShoppingResults; IntlFlightResponse ifr = new IntlFlightResponse(); List<IntlFlightResponseData> li = new List<IntlFlightResponseData>(); foreach (ShoppingResultInfo sri in resultInfos) { //航程信息 IntlFlightResponseData ifrd = new IntlFlightResponseData(); foreach (FlightsInfo fi in sri.FlightInfos) { //航程价格 PriceInfo pi = sri.PolicyInfos[0].PriceInfos[0]; ifrd.standardPrice = pi.Price; ifrd.fuelCharge = pi.FuelCharge; ifrd.tax = pi.Tax; ifrd.ShoppingInfoID = sri.PolicyInfos[0].ShoppingInfoID; Routing routing = new Routing(); //航班信息 int countStop = -1; foreach (Flight f in fi.Flights) { countStop++; if (countStop == 0) { ifrd.departCity = f.DCityName; ifrd.airline = f.AirLineName; ifrd.dPort = f.DPortName; ifrd.arriveTime = f.ATimeString; ifrd.takeOffTime = f.DTimeString; ifrd.provider = "携程旅行网"; } ifrd.craftType += f.CraftType + "; "; ifrd.flight += f.FlightNo + "; "; ifrd.TotalRoutings = countStop; ifrd.aPort = f.APortName; ifrd.arriveCity = f.ACityName; routing.DCode = f.DCity; routing.ACode = f.ACity; routing.DAirport = f.DPort; routing.AAirport = f.APort; routing.Airline = f.Airline; routing.SeatClass = "M"; routing.FlightNo = f.FlightNo; routing.OperatorNo = f.CarrierFlightNo; routing.No = f.No; routing.SegmentInfoNo = fi.SegmentInfoNo; ifrd.Routings.Add(routing); } } ifr.SetFlightResponseData(ifrd); } return ifr; }
public IntlFlightResponse SearchIntlFlightInResults(string dFlight, string aFlight) { IntlFlightResponseData data = new IntlFlightResponseData(); XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(AppDomain.CurrentDomain.BaseDirectory + "/CtripData/In_FlightData.xml"); XmlNodeList routes = xmldoc.SelectNodes("/FlightResponses/FlightRoute"); IntlFlightResponse response = new IntlFlightResponse(); bool flag = true; foreach(XmlNode route in routes) { XmlNodeList li = route.SelectNodes("/FlightResponse/Flight"); foreach (XmlNode xn in li) { if (xn.InnerText == dFlight && flag) { XmlNode parent = xn.ParentNode; data.fuelCharge = System.Convert.ToDecimal(parent.SelectSingleNode("FuelCharge").InnerText); data.tax = System.Convert.ToDecimal(parent.SelectSingleNode("Tax").InnerText); data.standardPrice = System.Convert.ToDecimal(parent.SelectSingleNode("StandardPrice").InnerText); response.SetFlightResponseData(data); flag = false; } else if (xn.InnerText == aFlight && !flag) { XmlNode parent = xn.ParentNode; data.fuelCharge = System.Convert.ToDecimal(parent.SelectSingleNode("FuelCharge").InnerText); data.tax = System.Convert.ToDecimal(parent.SelectSingleNode("Tax").InnerText); data.standardPrice = System.Convert.ToDecimal(parent.SelectSingleNode("StandardPrice").InnerText); response.SetFlightResponseData(data); } } } return response; }
private RS_FlightDetail ReplaceIntlFlightDetail(RS_FlightDetail ifd, IntlFlightResponseData ifrd) { Agency ag = new Agency(); ag.AgencyName = ifrd.provider; ag.price = ifrd.standardPrice.ToString(); ifd.AgencyList.Add(ag); if (System.Convert.ToDecimal(ifd.MinPrice) > ifrd.standardPrice) ifd.MinPrice = ag.price; ifd.Airline = ifrd.airline; ifd.CraftType = ifrd.craftType; ifd.APort = ifrd.aPort; ifd.ArriveTime = System.Convert.ToDateTime(ifrd.arriveTime).ToUniversalTime().ToString(); ifd.DPort = ifrd.dPort; ifd.OilFee = ifrd.fuelCharge.ToString(); ifd.Tax = ifrd.tax.ToString(); ifd.TakeOffTime = System.Convert.ToDateTime(ifrd.takeOffTime).ToUniversalTime().ToString(); ifd.Stops = ifrd.TotalRoutings; return ifd; }
public IntlFlightResponseData SearchIntlFlightInResults(string _flightNo) { IntlFlightResponseData data = new IntlFlightResponseData(); XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(AppDomain.CurrentDomain.BaseDirectory + "/CtripData/In_FlightData.xml"); XmlNodeList li = xmldoc.SelectNodes(XPATH); foreach (XmlNode xn in li) { if (xn.InnerText == _flightNo) { XmlNode parent = xn.ParentNode; data.fuelCharge = System.Convert.ToDecimal(parent.SelectSingleNode("FuelCharge").InnerText); data.tax = System.Convert.ToDecimal(parent.SelectSingleNode("Tax").InnerText); data.standardPrice = System.Convert.ToDecimal(parent.SelectSingleNode("StandardPrice").InnerText); return data; } } return data; }
public void SetFlightResponseData(IntlFlightResponseData frd) { li.Add(frd); }