public RtResult(string rtstring, string pnr) { rtstring = egString.trim(rtstring); rtstring = egString.trim(rtstring, '>'); pnr = pnr.ToUpper(); if (rtstring.IndexOf(xestring) >= 0) { return; } m_rtstring = egString.trim(rtstring); m_succeed = (m_rtstring.IndexOf(pnr) >= 0); m_succeed = (BaseFunc.PnrValidate(pnr) && m_succeed); if (!m_succeed) { return; } m_pnr = pnr; string[] line = m_rtstring.Split(Structs.SP_R_N, StringSplitOptions.RemoveEmptyEntries); m_et_flag = (egString.trim(line[0]) == etstring); string sname = m_rtstring.Replace(etstring, "");//sname为 etstring或起始位置到pnr之间有串,替换掉回车,换行,加号,减号 sname = sname.Replace(marriedstring, ""); string sflight = sname;//保存替换后的值 sname = egString.trim(sname.Substring(0, sname.IndexOf(m_pnr))); sname = sname.Replace("\r", " ").Replace("\n", " "); //maybe there are char of newline sname = sname.Replace("+", " ").Replace("-", " "); //there are +/- if multi pages namesfrom(sname); //string temp = Convert.ToString(m_psg_count + 1) + "."; //string sflight = m_rtstring.Replace(etstring,"");//egString.trim(m_rtstring.Substring(m_rtstring.IndexOf(temp) + temp.Length)); string[] sp = Structs.SP_NUMBER((uint)(m_psg_count + 999), true, true); line = sflight.Split(sp, StringSplitOptions.RemoveEmptyEntries); segfromlines(line); ssrfoidfromlines(line); SSR_TKNE_fromlines(line);//added by king 2009.12.8 ssradtkfromlines(line); tktstatusfromlines(line); pnrbigfromlines(line); m_auto_fare_flat = (m_rtstring.IndexOf("RMK AUTOMATIC FARE QUOTE") > 0); farefromlines(line); //tkt no if (m_tktnos == null || string.IsNullOrEmpty(m_tktnos[0]))//若ssr组没有取到电子客票号 { tktnofromlines(line); } //fp fpfromlines(line); //ei eifromlines(line); m_office = m_rtstring.Substring(m_rtstring.Length - 6); //if (!BaseFunc.OfficeValidate(m_office)) m_office = "";//commentted by king }
public EtdzResult(string resText) { resText = egString.trim(resText.Trim(), '>').Trim(); m_txt = resText; if (m_txt.IndexOf("CNY") == 0 || m_txt.IndexOf("ELECTRONIC TICKET ISSUED") >= 0 || m_txt.IndexOf("ET PROCESSING... PLEASE WAIT!") >= 0) { m_succ = true; } if (m_succ) { if (m_txt.IndexOf("CNY") == 0) { total = Convert.ToInt32(egString.Between2String(m_txt, "CNY", ".")); string temp = m_txt.Replace("\r", " ").Replace("\n", " "); string[] a = temp.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries); int index = 1; if (BaseFunc.PnrValidate(a[1])) { m_pnr = a[1]; } else if (BaseFunc.PnrValidate(a[2])) { m_pnr = a[2]; index = 2; } try { for (int i = index + 1; i < a.Length; i++) { string t = ""; if (BaseFunc.TicketNumberValidate(a[i], ref t)) { tktnos.Add(a[i]); } } } catch { } } else { total = 0; } } else { total = -1; switch (m_txt) { case "STOCK": throw new Exception("STOCK : 票池为空,请上票号"); case "DEVICE": throw new Exception("DEVICE : 打票机号错误"); case "NO PNR": throw new Exception("NO PNR : 未知错误,请重试"); case "FORMAT": throw new Exception("FORMAT : 格式错误"); case "FUNCTION": throw new Exception("FUNCTION : 未知指令"); case "INCOMPLETE PNR/FN": throw new Exception("INCOMPLETE PNR/FN : 请先输入票价组"); case "MANUAL": throw new Exception("MANUAL : 可能EI项或其它项过长"); } } }