private void init() { if (m_main == "") { return; } XmlDocument xd = new XmlDocument(); xd.LoadXml(m_main); XmlNode xn = xd.SelectSingleNode("//eg/bunkinfo"); m_count = xn.ChildNodes.Count; for (int i = 0; i < m_count; ++i) { XmlNode t = xn.ChildNodes[i]; SPECIAL_TICKET_INFO s = new SPECIAL_TICKET_INFO(t); m_ls.Add(s); } }
/// <summary> /// list special ticket in lv and lv2, /// </summary> /// <param name="lv">the fix bunk listview</param> /// <param name="lv2">the varable bunk listview</param> /// <param name="flight">the flights of AvResult</param> public void ToListView(ListView lv, ListView lv2, string [] flight, char [] bunk, int price) { try { if (lv == null) { return; } if (m_count == 0) { return; } List <string> lsFlight = EagleString.egString.ArrayToList(flight); lv.Items.Clear(); lv2.Items.Clear(); for (int i = 0; i < m_ls.Count; ++i) { SPECIAL_TICKET_INFO s = m_ls[i]; bool bflowbunk = (s.bunk == ""); // if flight is null that indicate all flight,should be fit the flights in ListView of AvResult if (s.flight == null || s.flight[0] == "*" || s.flight[0] == "") { if (s.airline == "") { continue; } string al = s.airline; List <string> ls = new List <string>(); for (int j = 0; j < flight.Length; ++j) { if (flight[j].IndexOf(al) == 0) { ls.Add(flight[j]); } } if (ls.Count == 0) { continue; } s.flight = ls.ToArray(); } for (int j = 0; j < s.flight.Length; ++j) { ListViewItem lvi = new ListViewItem(); lvi.Text = s.id.ToString(); lvi.SubItems.Add(s.fromto); if (s.flight[j].Substring(0, 2) == s.airline)//若航班号中有航空公司代码 { lvi.SubItems.Add(s.flight[j]); } else { lvi.SubItems.Add(s.airline + s.flight[j]); } lvi.SubItems.Add(s.bunk); if (bflowbunk) { //if(flight.contain(s.fight[j]) if (lsFlight.Contains(s.flight[j])) { lvi.SubItems.Add( EagleString.egString.TicketPrice( price, EagleString.EagleFileIO.RebateOf(bunk[lsFlight.IndexOf(s.flight[j])], s.airline)).ToString()); } else { lvi.SubItems.Add("0"); } } else { int p = s.price; if (p == 0) { p = EagleString.egString.TicketPrice(price, s.discounti); } lvi.SubItems.Add(p.ToString()); } lvi.SubItems.Add(s.discounti.ToString()); lvi.SubItems.Add(s.date.ToShortDateString()); if (bflowbunk)//flow bunk { lvi.SubItems.Add(string.Format("{1}折以上见舱低{0}点", s.discounti, s.rebate_lowest)); lv2.Items.Add(lvi); } else//fix bunk { lv.Items.Add(lvi); } } } for (int i = 0; i < lv.Items.Count; ++i) { if (i % 2 == 0) { lv.Items[i].BackColor = System.Drawing.Color.LightGray; } } for (int i = 0; i < lv2.Items.Count; ++i) { if (i % 2 == 0) { lv2.Items[i].BackColor = System.Drawing.Color.LightGray; } } } catch { } }