예제 #1
0
    /// <summary>
    /// 获取所有航空公司
    /// </summary>
    /// <returns></returns>
    protected ArrayList getAirLines()
    {
        //查找航空公司
        string str = "select aId, airlinecode,chName,logoPic,smallPic from FY_AirLine;";

        if (Session["TicketsSessionKey_Airlines"] == null)
        {
            //写入Session 分页使用
            DataSet   _ds            = SqlHelper.ExecuteDataset(SqlHelper.ConnString_select, CommandType.Text, str);
            ArrayList airlinesresult = new ArrayList();
            foreach (DataRow dr in _ds.Tables[0].Rows)
            {
                kabe_Airline a = new kabe_Airline();
                a.airlineId      = dr["aId"].ToString();
                a.airlineCode    = dr["airlinecode"].ToString();
                a.airlineName    = dr["chName"].ToString();
                a.airlinePic     = dr["smallPic"].ToString();
                a.airlineLogoPic = dr["logoPic"].ToString();
                airlinesresult.Add(a);
            }
            Session["TicketsSessionKey_Airlines"] = airlinesresult;
            return(airlinesresult);
        }
        else
        {
            return((ArrayList)Session["TicketsSessionKey_Airlines"]);
        }
    }
예제 #2
0
    /// <summary>
    /// 匹配航空公司信息
    /// </summary>
    /// <param name="airCode"></param>
    /// <returns></returns>
    public kabe_Airline CheckAirline(string airCode)
    {
        kabe_Airline airInfo = null;

        foreach (kabe_Airline item in getAirLines())
        {
            if (item.airlineCode == airCode)
            {
                airInfo = item;
                break;
            }
        }
        return(airInfo);
    }
예제 #3
0
    protected void GetSearchTicket()
    {
        DataSet airlines = this.getAirLineDataSets();//获取航空公司

        System.Threading.AutoResetEvent resetEvent = new System.Threading.AutoResetEvent(false);
        getFei580TicektHandler          d1 = new getFei580TicektHandler(getFei580Ticekt);
        getKABETiceketHandler           d2 = new getKABETiceketHandler(getKABETiceket);
        IAsyncResult iar1 = null, iar2 = null;
        ArrayList    tickets1 = null, tickets2 = null;
        AsyncCallback back1 = delegate(IAsyncResult iar)
        {
            try
            {
                tickets1 = d1.EndInvoke(iar1);
                if (iar2 != null && iar2.IsCompleted)
                {
                    resetEvent.Set();
                }
            }
            catch
            {
                resetEvent.Set();
            }
        };

        AsyncCallback back2 = delegate(IAsyncResult iar)
        {
            try
            {
                tickets2 = d2.EndInvoke(iar2);
                if (iar1 != null && iar1.IsCompleted)
                {
                    resetEvent.Set();
                }
            }
            catch
            {
                resetEvent.Set();
            }
        };

        iar1 = d1.BeginInvoke(back1, null);
        iar2 = d2.BeginInvoke(getAirLineCode(airlines, this.airlineId), back2, null);
        if (resetEvent.WaitOne(8000, true))
        {
            resetEvent.Close();
        }

        //没数据 显示提示
        if ((tickets1 == null || tickets1.Count == 0) && (tickets2 == null || tickets2.Count == 0))
        {
            this.panHaveValue2.Visible = false;
            this.panNoValue.Visible    = true;
            return;
        }
        else
        {
            this.panHaveValue2.Visible = true;
            this.panNoValue.Visible    = false;
        }

        ArrayList tickets = new ArrayList();

        if (string.IsNullOrEmpty(this.orderStr))
        {
            //排序飞瀛机票
            foreach (kabe_flight ordertickets in tickets1)
            {
                if (tickets.Count == 0)
                {
                    tickets.Add(ordertickets);
                }
                else
                {
                    bool isEnd = false;
                    for (int i = 0; i < tickets.Count && !isEnd; i++)
                    {
                        kabe_flight aft = (kabe_flight)tickets[i];
                        if ((i + 1) == tickets.Count && ordertickets.adultprice > aft.adultprice)
                        {
                            tickets.Add(ordertickets);
                            isEnd = true;
                            break;
                        }
                        else if (ordertickets.adultprice <= aft.adultprice)
                        {
                            tickets.Insert(i, ordertickets);
                            isEnd = true;
                            break;
                        }
                    }
                }
            }

            //排序Kabe机票
            if (tickets2 != null)
            {
                foreach (kabe_flight ordertickets in tickets2)
                {
                    if (tickets.Count == 0)
                    {
                        tickets.Add(ordertickets);
                    }
                    else
                    {
                        bool isEnd = false;
                        for (int i = 0; i < tickets.Count && !isEnd; i++)
                        {
                            kabe_flight aft = (kabe_flight)tickets[i];
                            if ((i + 1) == tickets.Count && ordertickets.adultprice > aft.adultprice)
                            {
                                tickets.Add(ordertickets);
                                isEnd = true;
                                break;
                            }
                            else if (ordertickets.adultprice < aft.adultprice)
                            {
                                tickets.Insert(i, ordertickets);
                                isEnd = true;
                                break;
                            }
                            else if (ordertickets.adultprice == aft.adultprice && ordertickets.airline.Equals(aft.airline))
                            {
                                isEnd = true;
                                break;
                            }
                        }
                    }
                }
            }
        }
        else if (this.orderStr.Trim() == "airLine")
        {
            //航空公司排序
            tickets = tickets1;
            //排序kabe机票
            foreach (kabe_flight ordertickets in tickets2)
            {
                if (tickets.Count == 0)
                {
                    tickets.Add(ordertickets);
                }
                else
                {
                    bool isEnd = false;
                    for (int i = 0; i < tickets.Count && !isEnd; i++)
                    {
                        kabe_flight aft = (kabe_flight)tickets[i];
                        if ((i + 1) == tickets.Count && ordertickets.adultprice > aft.adultprice && ordertickets.airline.Equals(aft.airline))
                        {
                            tickets.Add(ordertickets);
                            isEnd = true;
                            break;
                        }
                        else if (ordertickets.adultprice < aft.adultprice && ordertickets.airline.Equals(aft.airline))
                        {
                            tickets.Insert(i, ordertickets);
                            isEnd = true;
                            break;
                        }
                        else if (ordertickets.adultprice == aft.adultprice && ordertickets.airline.Equals(aft.airline))
                        {
                            tickets.Insert(i, ordertickets);
                            isEnd = true;
                            break;
                        }
                    }
                    if (!isEnd)
                    {
                        tickets.Add(ordertickets);
                    }
                }
            }
        }
        //
        if (Session["TicketsSessionKey_Airlines"] == null)
        {
            ArrayList airlinesresult = new ArrayList();
            foreach (DataRow dr in airlines.Tables[0].Rows)
            {
                foreach (kabe_flight ordertickets in tickets)
                {
                    if (dr["airlinecode"].ToString().Trim().ToLower() == ordertickets.airline.Trim().ToLower())
                    {
                        kabe_Airline a = new kabe_Airline();
                        a.airlineId   = dr["aId"].ToString();
                        a.airlineCode = dr["airlinecode"].ToString();
                        a.airlineName = dr["chName"].ToString();
                        a.airlinePic  = dr["smallPic"].ToString();
                        airlinesresult.Add(a);
                        break;
                    }
                }
            }
            //写入Session 分页使用
            Session["TicketsSessionKey_Airlines"] = airlinesresult;
        }
        Session["TicketsSessionKey_KaBaTickets"] = tickets2;
        Session[string.Format("TicketsSessionKey_{0}_{1}_{2}_{3}_{4}", this.tripType, fromcityCode, this.tocityCode, Convert.ToDateTime(this.tripDate).ToString("yyyyMMdd"), Convert.ToDateTime(this.backDate).ToString("yyyyMMdd"))] = tickets;
        this.BindData(tickets);
    }