/// <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"]); } }
/// <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); }
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); }