Example #1
0
        //生成国外航班的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;
        }
Example #2
0
 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;
 }
Example #3
0
        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;
        }
Example #4
0
 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;
 }
Example #5
0
 public void SetFlightResponseData(IntlFlightResponseData frd)
 {
     li.Add(frd);
 }