Ejemplo n.º 1
0
        /// <summary>
        /// 产生PNR
        /// </summary>
        /// <param name="flightno">航班号</param>
        /// <param name="actioncode">"LL"</param>
        /// <param name="date">航班日期</param>
        /// <param name="city">起飞城市</param>
        /// <param name="city2">抵达城市</param>
        /// <param name="bunk">舱位</param>
        /// <param name="names">姓名</param>
        /// <param name="dtlimit">时限</param>
        /// <param name="cardnos">证件号</param>
        /// <param name="remarks">备注</param>
        /// <param name="pnr">返回PNR</param>
        public static void CreatePnrFromIbe(string [] flightno, string [] actioncode, DateTime [] date, string[] city, string [] city2, char[] bunk,
                                            string [] names, DateTime dtlimit, string[] cardnos, string [] remarks, ref string pnr)
        {
            EagleWebService.IbeFunc fc = new EagleWebService.IbeFunc();
            string[] flightdate        = new string[date.Length];
            string[] bunks             = new string[date.Length];
            for (int i = 0; i < date.Length; ++i)
            {
                flightdate[i] = date[i].ToString("yyyy-MM-dd");
                bunks[i]      = bunk[i].ToString();
            }
            logic.IBEAgent ibeagent = new logic.IBEAgent();


            string xml = EagleString.egString.CreateXmlOfEagleIbe(flightno, actioncode, date, city, city2, bunk, names, dtlimit, cardnos, remarks);

            try
            {
                pnr = fc.SS(flightno, actioncode, flightdate, city, city2, bunks, names, dtlimit.ToString("yyyy-MM-dd HH:mm:00"), cardnos, remarks);
            }
            catch
            {
                pnr = ibeagent.MakeEbtOrder(xml);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 取航段信息
        /// </summary>
        /// <param name="pnr"></param>
        public void step1(string pnr)
        {
            this.Text = "正在清理控件……";
            Application.DoEvents();
            textBox3.Clear();
            textBox4.Clear();
            textBox5.Clear();
            textBox6.Clear();
            textBox7.Clear();
            textBox8.Clear();
            textBox9.Clear();
            textBox10.Clear();
            textBox11.Clear();
            textBox12.Clear();
            textBox13.Clear();
            textBox14.Clear();
            textBox15.Clear();
            textBox16.Clear();
            textBox17.Clear();
            textBox18.Clear();
            //for (int i = 0; i < 4; i++) planeStyle[i] = "";
            planeStyleList.Clear();
            txtName.Text = "";
#if REALIBE
            string dsgxml = step2(pnr);
            Options.ibe.ibeInterface ib = new Options.ibe.ibeInterface();
            string xml = ib.rt2(pnr, GlobalVar.serverAddr == GlobalVar.ServerAddr.HangYiWang);
#else
            logic.IBEAgent ibeagent = new logic.IBEAgent();
            ibeagent.IpID = GlobalVar.CurIPUsing;
            string xml = ibeagent.wsRT2(pnr.ToUpper());
#endif
            if (string.IsNullOrEmpty(xml) || xml.Contains("<ibe>err</ibe>"))
            {
                EagleWebService.IbeStuff.RefreshIbeUrl();
                MessageBox.Show("查询PNR失败!返回信息如下:\n" + xml);
                return;
            }
            this.Text = "正在获取PNR信息……";
            Application.DoEvents();
            Options.ibe.IbeRt ir = new Options.ibe.IbeRt(xml);
            ChildCount = 0;
            nkg乘客信息    = new string[ir.getpeopleinfo(0).Length];
            for (int i = 0; i < ir.getpeopleinfo(0).Length; i++)
            {
                //if (ir.getpeopleinfo(1)[i] == "") throw new Exception("ErrorCardId"); //commentted by chenqj
                txtName.Text += ir.getpeopleinfo(0)[i] + "-" + ir.getpeopleinfo(1)[i] + (i == ir.getpeopleinfo(0).Length - 1 ? "" : ";");
                if (ir.getpeopleinfo(0)[i].IndexOf("(CHD)") > 0)
                {
                    ChildCount++;
                }
                nkg乘客信息[i] = ir.getpeopleinfo(0)[i] + "-" + ir.getpeopleinfo(1)[i] + "-"
                             + (ir.getpeopleinfo(0)[i].IndexOf("(CHD)") > 0 ? "儿童" : "成人");
            }
            string[] fi = ir.getflightsegsinfo();
            nkg航班信息 = new string[fi.Length];
            for (int i = 0; i < fi.Length; i++)
            {
                string[] segment = fi[i].Split('~');

                //more than 4 destinations,modified by chenqj
                {
                    int index = i * 4 + 3;
                    groupBox1.Controls["textBox" + index.ToString()].Text     = segment[0]; //航班號
                    groupBox1.Controls["textBox" + (++index).ToString()].Text = segment[1]; //艙位
                    System.Globalization.DateTimeFormatInfo myDTFI = new System.Globalization.CultureInfo("en-us", false).DateTimeFormat;
                    DateTime dt;
                    try
                    {
                        dt = DateTime.ParseExact(segment[3].Replace(" CST ", " "), "ddd MMM dd HH:mm:ss yyyy", myDTFI);
                    }
                    catch
                    {
                        dt = DateTime.Parse(segment[3]);
                    }

                    groupBox1.Controls["textBox" + (++index).ToString()].Text = dt.ToString("yyyy-MM-dd HHmm", myDTFI).ToUpper(); //時間
                    groupBox1.Controls["textBox" + (++index).ToString()].Text = segment[2];                                       //日期
#if REALIBE
                    planeStyleList.Add(getPlaneByFlightno(dsgxml, segment[0]));
#else
                    planeStyleList.Add(segment[6]);
#endif
                }
                Application.DoEvents();
                {
                    //到达时间segmeng[4];
                    System.Globalization.DateTimeFormatInfo myDTFI = new System.Globalization.CultureInfo("en-us", false).DateTimeFormat;
                    DateTime leavetime;
                    try
                    {
                        leavetime = DateTime.ParseExact(segment[4].Replace(" CST ", " "), "ddd MMM dd HH:mm:ss yyyy", myDTFI);
                    }
                    catch
                    {
                        leavetime = DateTime.Parse(segment[4]);
                    }
                    string lt = leavetime.ToString("yyyy-MM-dd HHmm", myDTFI).ToUpper();

                    DateTime arrivetime;
                    try
                    {
                        arrivetime = DateTime.ParseExact(segment[5].Replace(" CST ", " "), "ddd MMM dd HH:mm:ss yyyy", myDTFI);
                    }
                    catch
                    {
                        arrivetime = DateTime.Parse(segment[5]);
                    }
                    string at = arrivetime.ToString("yyyy-MM-dd HHmm", myDTFI).ToUpper();
                    nkg航班信息[i]  = lt.Split(' ')[0] + ",";
                    nkg航班信息[i] += lt.Split(' ')[1].Insert(2, ":") + "(" + segment[2].Substring(0, 3) + ")" + ",";
                    nkg航班信息[i] += at.Split(' ')[1].Insert(2, ":") + "(" + segment[2].Substring(3, 3) + ")" + ",";
                    nkg航班信息[i] += pnr + ",";
                    nkg航班信息[i] += "HK" + ",";//订座状态
                    nkg航班信息[i] += EagleAPI.GetAirLineName(segment[0].Substring(0, 2)) + ",";
                    nkg航班信息[i] += segment[0] + ",";
                    nkg航班信息[i] += segment[1] + ",";
                    nkg航班信息[i] += "#票价#" + ",";
                    //nkg航班信息[i] += planeStyle[i] + ",";
                    nkg航班信息[i] += planeStyleList[i] + ",";
                    nkg航班信息[i] += "#机建燃油#";
                }
            }
            //**************************2008-7-16置gbYzpOrder中的航班信息变量**********************************开始
            if (GlobalVar2.gbYzpOrder == null)
            {
                GlobalVar2.gbYzpOrder = new YzpBtoC.YZPnewOrder();
            }
            GlobalVar2.gbYzpOrder.rFLIGHTINFO = new YzpBtoC.YZPflightINFO[fi.Length];
            GlobalVar2.gbYzpOrder.rPASSINFO   = new YzpBtoC.YZPpassINFO[ir.getpeopleinfo(0).Length];
            for (int count = 0; count < fi.Length; count++)
            {
                GlobalVar2.gbYzpOrder.rFLIGHTINFO[count] = new YzpBtoC.YZPflightINFO();
                string[] segment = fi[count].Split('~');
                GlobalVar2.gbYzpOrder.rFLIGHTINFO[count].rFLIGHTNO   = segment[0];
                GlobalVar2.gbYzpOrder.rFLIGHTINFO[count].rFLIGHTDATE = getflightdate(segment[3]);
                GlobalVar2.gbYzpOrder.rFLIGHTINFO[count].rCITYLEAVE  = segment[2].Substring(0, 3);
                GlobalVar2.gbYzpOrder.rFLIGHTINFO[count].rCITYARRIVE = segment[2].Substring(3);
                GlobalVar2.gbYzpOrder.rFLIGHTINFO[count].rBUNK       = segment[1];
#if REALIBE
                GlobalVar2.gbYzpOrder.rFLIGHTINFO[count].rPLANETYPE  = planeStyleList[count];        //planeStyle[count];
                GlobalVar2.gbYzpOrder.rFLIGHTINFO[count].rTAXBUILD   = step5(planeStyleList[count]); //step5(planeStyle[count]);
                GlobalVar2.gbYzpOrder.rFLIGHTINFO[count].rTIMELEAVE  = getNormalDateStringFromIBEDate(segment[4]).Split(' ')[1];
                GlobalVar2.gbYzpOrder.rFLIGHTINFO[count].rTIMEARRIVE = getNormalDateStringFromIBEDate(segment[5]).Split(' ')[1];
#else
                //GlobalVar2.gbYzpOrder.rFLIGHTINFO[count].rPLANETYPE = segment[6];

                //GlobalVar2.gbYzpOrder.rFLIGHTINFO[count].rTAXOIL = segment[8];
                //GlobalVar2.gbYzpOrder.rFLIGHTINFO[count].rTAXBUILD = EagleString.EagleFileIO.TaxOfBuildBy(segment[6]).ToString();

                //GlobalVar2.gbYzpOrder.rFLIGHTINFO[count].rTIMELEAVE = DateTime.Parse(segment[4]).ToString("HHmm");

                //GlobalVar2.gbYzpOrder.rFLIGHTINFO[count].rTIMEARRIVE = DateTime.Parse(segment[5]).ToString("HHmm");
#endif
                GlobalVar2.gbYzpOrder.rFLIGHTINFO[count].rSTOPSTATION  = "略";
                GlobalVar2.gbYzpOrder.rFLIGHTINFO[count].rAIRLINEID    = "1";
                GlobalVar2.gbYzpOrder.rFLIGHTINFO[count].rAIRLINEINDEX = count.ToString();
            }
            //**************************2008-7-16置gbYzpOrder中的航班信息变量**********************************结束
        }
Ejemplo n.º 3
0
        public void run()
        {
            if (GlobalVar.bUsingConfigLonely)
            {
                throw new Exception("配置独占中……");
            }
            if (running)
            {
                throw new Exception("线程运行中……");
            }
            try
            {
                running = true;
                pnr     = getpnr();

                /*
                 * etRtResult = "";
                 * EagleAPI.EagleSendOneCmd("i~rt:n/" + pnr,7);*/
                //使用ibe接口
#if REALIBE
                Options.ibe.ibeInterface ib = new Options.ibe.ibeInterface();
                string xml = ib.rt2(pnr, GlobalVar.serverAddr == GlobalVar.ServerAddr.HangYiWang);
#else
                //小魏ibe接口
                logic.IBEAgent ibeagent = new logic.IBEAgent();
                string         xml      = ibeagent.wsRT2(pnr.ToUpper());
#endif
                if (xml == "")
                {
                    et.pnr = pnr;
                    et.submitinfoCancelledPnr("IBE未取到PNR信息,可能已经取消或没有这个PNR", "NO PNR OR CANCELLED");
                    etRtResult = "";
                    bPating    = false;
                    running    = false;
                    return;
                }
                et.init();
                Options.ibe.IbeRt ir = new Options.ibe.IbeRt(xml);
                et.pnr = pnr;
                string[] tktnos = ir.getpeopleinfo(2);
                for (int i = 0; i < tktnos.Length; i++)
                {
                    et.etnumbers  += tktnos[i] + (i == tktnos.Length - 1 ? "" : ";");
                    et.passengers += ir.getpeopleinfo(0)[i] + "-" + ir.getpeopleinfo(1)[i] + (i == tktnos.Length - 1 ? "" : ";");
                }
                string[] fi = ir.getflightsegsinfo();
                for (int i = 0; i < fi.Length; i++)
                {
                    string[] segment = fi[i].Split('~');
                    if (i == 0)
                    {
                        et.fn1   = segment[0];
                        et.bunk1 = segment[1];
                        et.cp1   = segment[2];
                        System.Globalization.DateTimeFormatInfo myDTFI = new System.Globalization.CultureInfo("en-us", false).DateTimeFormat;
                        try
                        {
                            DateTime dt = DateTime.ParseExact(segment[3].Replace(" CST ", " "), "ddd MMM dd HH:mm:ss yyyy", myDTFI);
                            et.date1 = dt.ToString("ddMMM", myDTFI).ToUpper();
                        }
                        catch
                        {
                            et.date1 = DateTime.Parse(segment[3]).ToString("ddMMM", myDTFI);
                        }
                    }
                    if (i == 1)
                    {
                        et.fn2   = segment[0];
                        et.bunk2 = segment[1];
                        et.cp2   = segment[2];
                        System.Globalization.DateTimeFormatInfo myDTFI = new System.Globalization.CultureInfo("en-us", false).DateTimeFormat;
                        try
                        {
                            DateTime dt = DateTime.ParseExact(segment[3].Replace(" CST ", " "), "ddd MMM dd HH:mm:ss yyyy", myDTFI);
                            et.date2 = dt.ToString("ddMMM", myDTFI).ToUpper();
                        }
                        catch
                        {
                            et.date1 = DateTime.Parse(segment[3]).ToString("ddMMM", myDTFI);
                        }
                    }
                }
                bPating    = true;
                etRtResult = "";
                //EagleAPI.EagleSendOneCmd(string.Format("i~rt{0}~pat:", pnr), 7);//不发送pat,改为直接提交  2009-5-11 by wfb
                et.pnr = pnr;
                et.submitinfo();
                etRtResult = "";
                bPating    = false;
                running    = false;
            }
            catch (Exception ex)
            {
                etRtResult = "";
                running    = false;
                throw new Exception(ex.Message + ": 终止线程!");
            }
        }