Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        /// <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
            {
            }
        }