Example #1
0
    void HotelRedirect_InitializeControls(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (this.Request["CountryCode"] != null && this.Request["CityCode"] != null)
            {
                int iRoomNumber = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["RoomNumber"]);

                List<int> listAdults = UnConvert(Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["Adults"]));

                List<int> listChilds = UnConvert(Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["Childs"]));

                string strCountryCode = this.Request["CountryCode"];
                string strCityCode = this.Request["CityCode"];

                DateTime dateChechkIn = DateTime.Now.AddDays(Convert.ToDouble(System.Configuration.ConfigurationManager.AppSettings["DateCheckIn"])).Date;
                DateTime dateChechkOut = DateTime.Now.AddDays(Convert.ToDouble(System.Configuration.ConfigurationManager.AppSettings["DateCheckOut"])).Date;

                HotelSearchCondition hotelSearchCondition = new HotelSearchCondition();

                for (int i = 0; i < iRoomNumber; i++)
                {
                    RoomSearchCondition roomSearchCondition = new RoomSearchCondition();

                    roomSearchCondition.Passengers.Add(PassengerType.Adult, listAdults[i]);
                    roomSearchCondition.Passengers.Add(PassengerType.Child, listChilds[i]);

                    hotelSearchCondition.RoomSearchConditions.Add(roomSearchCondition);
                }
                hotelSearchCondition.Country = strCountryCode;
                hotelSearchCondition.Location = strCityCode;
                hotelSearchCondition.LocationIndicator = LocationIndicator.City;
                hotelSearchCondition.CheckIn = Convert.ToDateTime(dateChechkIn);
                hotelSearchCondition.CheckOut = Convert.ToDateTime(dateChechkOut);
                this.Transaction.CurrentSearchConditions = hotelSearchCondition;
                this.Transaction.CurrentTransactionObject = new TERMS.Business.Centers.SalesCenter.TransactionObject();

                this.Response.Redirect("~/Page/Common/Searching1.aspx?target=~/Page/Hotel/HotelSelectForm");
            }
        }
    }
Example #2
0
    protected void btn_Search_h_Click(object sender, EventArgs e)
    {
        if (txtFullName.Text.Trim().Length == 0)
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "Warting", "<script language=javascript>alert('Please Input City Name');</script>");
            return;
        }

        txtName.Text = ConvertName();

        DateTime dtNow = DateTime.Now;
        hotelSearchHotelByZyl.Info("MV_B2C Hotel Serach Start : " + dtNow.ToString("HH:mm:ss") + ":" + dtNow.Millisecond);

        if (Utility.IsSubAgent)
            OperaterAdvice.DoAdvice(Terms.Configuration.Utility.ConfigurationConst.OperateType.SUB_SearchHotel, this);
        else
            OperaterAdvice.DoAdvice(Terms.Configuration.Utility.ConfigurationConst.OperateType.MV_SearchHotel, this);
        if (!Page.IsValid)
            return;

        try
        {
            //log begin 20090312 Leon
            log.Info("\r\n");

            if (!Utility.IsLogin)
            {
                log.Info(PageUtility.HotelLogRandomNumber.ToString() + " >====================Not Login========================");
            }
            else
            {
                log.Info(PageUtility.HotelLogRandomNumber.ToString() + " >==========================Login========================");
            }

            log.Info(PageUtility.HotelLogRandomNumber.ToString() + " >SearchClick Begin Start time : " + System.DateTime.Now);
            //log end 20090312 Leon
        }
        catch
        {

        }

        DateTime dateChinkIn_H = Convert.ToDateTime(this.txtCheckin_h.CDate);
        DateTime dateChinkOut_H = Convert.ToDateTime(this.txtCheckout_h.CDate);

        if (dateChinkIn_H < DateTime.Now.AddDays(7))
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "Warting", "<script language=javascript>alert('Departure date is greater than the current date seven days.');</script>");
            return;
        }

        if (dateChinkOut_H < DateTime.Now.AddDays(7))
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "Warting", "<script language=javascript>alert('Return date is greater than the current date seven days.');</script>");
            return;
        }

        if (dateChinkIn_H < DateTime.Today && dateChinkOut_H < DateTime.Today)
        {
            this.Response.Redirect(SaleWebSuffix + "Page/Common/ErrorMessage.aspx?ErrorMessage=We can only accept dates that occur between " + DateTime.Today.AddDays(1).ToString("MM/dd/yyyy") + " and 12/27/2008. Please enter a new date.&&GoToPage=~/Index.aspx");
            return;
        }

        if (dateChinkIn_H <= DateTime.Today)
        {
            this.Response.Redirect(SaleWebSuffix + "Page/Common/ErrorMessage.aspx?ErrorMessage=The check-in date must occur after the today date. Please change the date.&&GoToPage=~/Index.aspx");
            return;
        }

        if (dateChinkIn_H > dateChinkOut_H)
        {
            this.Response.Redirect(SaleWebSuffix + "Page/Common/ErrorMessage.aspx?ErrorMessage=The check-out date must occur after the check-in date. Please change the date.&&GoToPage=~/Index.aspx");
            return;
        }

        HotelSearchCondition hotelSearchCondition = new HotelSearchCondition();

        for (int i = 0; i < TravelerChange1.Rooms; i++)
        {
            RoomSearchCondition roomSearchCondition = new RoomSearchCondition();

            roomSearchCondition.Passengers.Add(PassengerType.Adult, TravelerChange1.Adults[i]);
            roomSearchCondition.Passengers.Add(PassengerType.Child, TravelerChange1.Childs[i]);

            hotelSearchCondition.RoomSearchConditions.Add(roomSearchCondition);
        }
        //hotelSearchCondition.Country = this.ddlCountry_h.SelectedValue;
        //hotelSearchCondition.Location = this.ddlCity_h.SelectedValue;
        hotelSearchCondition.LocationIndicator = LocationIndicator.City;
        hotelSearchCondition.CheckIn = Convert.ToDateTime(this.txtCheckin_h.CDate);
        hotelSearchCondition.CheckOut = Convert.ToDateTime(this.txtCheckout_h.CDate);
        this.Transaction.IntKey = hotelSearchCondition.GetHashCode();
        this.Transaction.CurrentSearchConditions = hotelSearchCondition;
        this.Transaction.CurrentTransactionObject = new TERMS.Business.Centers.SalesCenter.TransactionObject();
        Utility.IsTourMain = false;//设置是否是Tour标志

        if (this.txtName.Text.Trim().Length == 3)
        {
            Terms.Common.Domain.City CityName = _cityService.Get(this.txtName.Text);

            if (CityName != null)
            {
                ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Location = CityName.Code;
                ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Country = CityName.CountryCode;
                //Session["CityNameList"] = ilCityName;
                //this.Response.Redirect("~/Page/Common/SearchMoreForm.aspx?CityName=" + this.txtCityName.Text);
            }
            else
            {
                Terms.Common.Domain.Airport airport = _airportService.Get(this.txtName.Text);
                if (airport != null)
                {
                    ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Location = airport.City.Code;
                    ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Country = airport.City.CountryCode;
                }
                else
                {
                    IList ilCityName = _cityService.FindSomeCityByName(this.txtName.Text);
                    if (ilCityName.Count > 1)
                    {
                        Session["CityNameList"] = ilCityName;
                        this.Response.Redirect(SaleWebSuffix + "Page/Hotel2/SearchMoreCityForm.aspx?CityName=" + this.txtName.Text);
                    }
                    else if (ilCityName.Count == 1)
                    {
                        Terms.Common.Domain.City citylist = (Terms.Common.Domain.City)ilCityName[0];
                        ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Location = citylist.Code;
                        ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Country = citylist.CountryCode;
                    }
                    else if (ilCityName == null || ilCityName.Count == 0)
                    {
                        Session["CityNameList"] = null;
                        this.Response.Redirect(SaleWebSuffix + "Page/Hotel2/SearchMoreCityForm.aspx?CityName=" + this.txtName.Text);
                    }
                }
            }

        }
        else
        {
            //判断是否有多个.如果有相同则到SerachMore页面进行选择,如果没有则进入搜索页面
            IList ilCityName = _cityService.FindSomeCityByName(this.txtName.Text);

            if (ilCityName.Count > 1)
            {
                Session["CityNameList"] = ilCityName;
                this.Response.Redirect(SaleWebSuffix + "Page/Hotel2/SearchMoreCityForm.aspx?CityName=" + this.txtName.Text);
            }
            else if (ilCityName.Count == 1)
            {
                Terms.Common.Domain.City citylist = (Terms.Common.Domain.City)ilCityName[0];
                ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Location = citylist.Code;
                ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Country = citylist.CountryCode;
            }
            else if (ilCityName == null || ilCityName.Count == 0)
            {
                Terms.Common.Domain.Airport airport = _airportService.Get(this.txtName.Text);
                if (airport != null)
                {
                    ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Location = airport.City.Code;
                    ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Country = airport.City.CountryCode;
                }
                else
                {
                    this.Response.Redirect(SaleWebSuffix + "Page/Hotel2/SearchMoreCityForm.aspx?CityName=" + this.txtName.Text);
                }
            }
        }

        log.Info(PageUtility.HotelLogRandomNumber.ToString() + " >Redirect Searching1.aspx Begin Start time : " + System.DateTime.Now);

        hotelSearchHotelByZyl.Debug("Hotel Start :" + DateTime.Now.ToLongTimeString());

        dtNow = DateTime.Now;
        hotelSearchHotelByZyl.Info("MV_B2C Hotel Serach To Searching1 Start : " + dtNow.ToString("HH:mm:ss") + ":" + dtNow.Millisecond);

        this.Response.Redirect(SaleWebSuffix + "Page/Common/Searching1.aspx?target=~/Page/Hotel2/SearchResultForm" + "&ConditionID=" + this.Transaction.IntKey.ToString());
    }
    protected void btnSearch_Click(object sender, ImageClickEventArgs e)
    {
        if (listBDepartureAirport.Visible == true && listBDepartureAirport.SelectedIndex == -1)
        {
            return;
        }
        if (listBReturnAirport.Visible == true && listBReturnAirport.SelectedIndex == -1)
        {
            return;
        }
        PackageSearchCondition PacakgeSearch = (PackageSearchCondition)this.Transaction.CurrentSearchConditions;

        DateTime dateDept_A = Convert.ToDateTime(this.dateDepatrue.CDate);
        DateTime dateRtn_A = Convert.ToDateTime(this.dateReturn.CDate);
        DateTime dateChinkIn_H;
        DateTime dateChinkOut_H;

        if (this.CheckIn_AH.CDate == "__/__/____")
            dateChinkIn_H = dateDept_A.AddDays(1);  //若Check in为空,则默认为Air出发日期加一天
        else
            dateChinkIn_H = Convert.ToDateTime(this.CheckIn_AH.CDate);

        if (this.CheckOut_AH.CDate == "__/__/____")
            dateChinkOut_H = dateRtn_A;             //若Check out为空,则默认为Air返回日期
        else
            dateChinkOut_H = Convert.ToDateTime(this.CheckOut_AH.CDate);

        if (dateDept_A < DateTime.Now.AddDays(7))
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "Warting", "<script language=javascript>alert('Departure date is greater than the current date seven days.');</script>");
            return;
        }

        if (dateRtn_A < DateTime.Now.AddDays(7))
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "Warting", "<script language=javascript>alert('Return date is greater than the current date seven days.');</script>");
            return;
        }

        if (dateChinkIn_H < DateTime.Now.AddDays(7))
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "Warting", "<script language=javascript>alert('Departure date is greater than the current date seven days.');</script>");
            return;
        }

        if (dateChinkOut_H < DateTime.Now.AddDays(7))
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "Warting", "<script language=javascript>alert('Return date is greater than the current date seven days.');</script>");
            return;
        }

        if (dateChinkIn_H < DateTime.Today && dateChinkOut_H < DateTime.Today)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=We can only accept dates that occur between " + DateTime.Today.AddDays(1).ToString("MM/dd/yyyy") + " and 12/27/2008. Please enter a new date.&&GoToPage=~/Index.aspx");
            return;
        }

        if (dateChinkIn_H <= DateTime.Today)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=The check-in date must occur after the today date. Please change the date.&&GoToPage=~/Index.aspx");
            return;
        }

        if (dateChinkIn_H > dateChinkOut_H)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=The check-out date must occur after the check-in date. Please change the date.&&GoToPage=~/Index.aspx");
            return;
        }

        if (dateDept_A >= dateRtn_A)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=The Depart date must occur after the Return date. Please change the date.&&GoToPage=~/Index.aspx");
            return;
        }

        if (dateDept_A > dateChinkIn_H)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=The check-in date must occur after the Depart date. Please change the date.&&GoToPage=~/Index.aspx");
            return;
        }

        if (dateChinkOut_H > dateRtn_A)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=The Return date must occur after the check-out date. Please change the date.&&GoToPage=~/Index.aspx");
            return;
        }

        PacakgeSearch.HotelSearchCondition.CheckIn = dateChinkIn_H;
        PacakgeSearch.HotelSearchCondition.CheckOut = dateChinkOut_H;

        if (PacakgeSearch.DestinationAirPorts.Count > 1)
            PacakgeSearch.HotelSearchCondition.Location = ((Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[this.listBReturnAirport.SelectedIndex]).City.Code;//"PVG";
        else
            PacakgeSearch.HotelSearchCondition.Location = ((Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[0]).City.Code;
        PacakgeSearch.HotelSearchCondition.LocationIndicator = TERMS.Common.LocationIndicator.City;
        PacakgeSearch.HotelSearchCondition.Country = ((Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[0]).City.Country.Code;

        PacakgeSearch.HotelSearchCondition.RoomSearchConditions.Clear();
        for (int i = 0; i < TravelerChange1.Rooms; i++)
        {
            RoomSearchCondition roomSearchCondition = new RoomSearchCondition();

            roomSearchCondition.Passengers.Add(TERMS.Common.PassengerType.Adult, TravelerChange1.Adults[i]);
            roomSearchCondition.Passengers.Add(TERMS.Common.PassengerType.Child, TravelerChange1.Childs[i]);

            PacakgeSearch.HotelSearchCondition.RoomSearchConditions.Add(roomSearchCondition);
        }

        //保存Cabin
        TERMS.Common.CabinType cabin = TERMS.Common.CabinType.Economy;

        if (PacakgeSearch.AirSearchCondition.AirTripCondition != null)
            if (PacakgeSearch.AirSearchCondition.AirTripCondition.Count > 0)
                cabin = PacakgeSearch.AirSearchCondition.AirTripCondition[0].Cabin;

        PacakgeSearch.AirSearchCondition.AirTripCondition.Clear();

        PacakgeSearch.AirSearchCondition.SetPassengerNumber(TERMS.Common.PassengerType.Adult, TravelerChange1.TotalAdults);
        PacakgeSearch.AirSearchCondition.SetPassengerNumber(TERMS.Common.PassengerType.Child, TravelerChange1.TotalChilds);

        AirTripCondition DPTairTripCondition = new AirTripCondition();
        if (PacakgeSearch.DepatrueAirPorts.Count > 1)
            DPTairTripCondition.Departure = (Terms.Common.Domain.Airport)PacakgeSearch.DepatrueAirPorts[this.listBDepartureAirport.SelectedIndex];
        else
            DPTairTripCondition.Departure = (Terms.Common.Domain.Airport)PacakgeSearch.DepatrueAirPorts[0];
        DPTairTripCondition.DepartureDate = Convert.ToDateTime(this.dateDepatrue.CDate);
        if (PacakgeSearch.DestinationAirPorts.Count > 1)
            DPTairTripCondition.Destination = (Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[this.listBReturnAirport.SelectedIndex];
        else
            DPTairTripCondition.Destination = (Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[0];
        DPTairTripCondition.IsDepartureTimeSpecified = this.chkflexible.Checked;
        DPTairTripCondition.Cabin = cabin; //还原Cabin

        PacakgeSearch.AirSearchCondition.AddTripCondition(DPTairTripCondition);

        if (ddlAirLine.SelectedValue != "all")
        {
            PacakgeSearch.AirSearchCondition.Airlines = ddlAirLine.SelectedValue.Split(',');
        }
        else
        {
            PacakgeSearch.AirSearchCondition.Airlines = null;
        }

        AirTripCondition RTNairTripCondition = new AirTripCondition();
        if (PacakgeSearch.DestinationAirPorts.Count > 1)
            RTNairTripCondition.Departure = (Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[this.listBReturnAirport.SelectedIndex];
        else
            RTNairTripCondition.Departure = (Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[0];
        RTNairTripCondition.DepartureDate = Convert.ToDateTime(this.dateReturn.CDate);
        if (PacakgeSearch.DepatrueAirPorts.Count > 1)
            RTNairTripCondition.Destination = (Terms.Common.Domain.Airport)PacakgeSearch.DepatrueAirPorts[this.listBDepartureAirport.SelectedIndex];
        else
            RTNairTripCondition.Destination = (Terms.Common.Domain.Airport)PacakgeSearch.DepatrueAirPorts[0];
        RTNairTripCondition.IsDepartureTimeSpecified = this.chkflexible.Checked;
        RTNairTripCondition.Cabin = cabin; //还原Cabin

        PacakgeSearch.AirSearchCondition.AddTripCondition(RTNairTripCondition);

        PacakgeSearch.AirSearchCondition.FlightType = "roundtrip";
        //PacakgeSearch.AirSearchCondition.ProductType = TERMS.Common.ProductType.Package;
        PacakgeSearch.OptionalHotelSearchConditions.Clear();
        this.Transaction.CurrentSearchConditions = PacakgeSearch;

        this.Page.Response.Redirect("~/Page/Common/Searching1.aspx?target=~/Page/Package/PackageSearchResultForm" + "&ConditionID=" + Request.Params["ConditionID"]);
    }
    protected void btnSearch_Click(object sender, EventArgs e)
    {
        //�ж�Search����
        if (!IsCheckSearch())
        {
            return;
        }
        //�ж�CheckIn,CheckOut����

        DateTime dateChinkIn_One = Convert.ToDateTime(this.dateCheckInOne.CDate);
        DateTime dateChinkOut_One = Convert.ToDateTime(this.dateCheckOutOne.CDate);
        DateTime dateChinkIn_Two = Convert.ToDateTime(this.dateCheckInTwo.CDate);
        DateTime dateChinkOut_Two = Convert.ToDateTime(this.dateCheckOutTwo.CDate);
        DateTime dateDeparture = Convert.ToDateTime(this.dateDeparture.CDate);
        DateTime dateReturn = Convert.ToDateTime(this.dateReturn.CDate);

        if (dateChinkIn_One < DateTime.Now.AddDays(7))
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "Warting", "<script language=javascript>alert('Departure date is greater than the current date seven days.');</script>");
            return;
        }

        if (dateChinkOut_One < DateTime.Now.AddDays(7))
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "Warting", "<script language=javascript>alert('Return date is greater than the current date seven days.');</script>");
            return;
        }

        if (dateChinkIn_Two < DateTime.Now.AddDays(7))
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "Warting", "<script language=javascript>alert('Departure date is greater than the current date seven days.');</script>");
            return;
        }

        if (dateChinkOut_Two < DateTime.Now.AddDays(7))
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "Warting", "<script language=javascript>alert('Return date is greater than the current date seven days.');</script>");
            return;
        }

        if (dateDeparture < DateTime.Now.AddDays(7))
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "Warting", "<script language=javascript>alert('Departure date is greater than the current date seven days.');</script>");
            return;
        }

        if (dateReturn < DateTime.Now.AddDays(7))
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "Warting", "<script language=javascript>alert('Return date is greater than the current date seven days.');</script>");
            return;
        }

        if ((dateChinkIn_One < DateTime.Today && dateChinkOut_One < DateTime.Today) || (dateChinkIn_Two < DateTime.Today && dateChinkOut_Two < DateTime.Today))
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=We can only accept dates that occur between " + DateTime.Today.AddDays(1).ToString("MM/dd/yyyy") + " and 12/27/2008. Please enter a new date.&&GoToPage=~/Index.aspx");
            return;
        }

        if (dateChinkIn_One <= DateTime.Today || dateChinkIn_Two < DateTime.Today)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=The check-in date must occur after the today date. Please change the date.&&GoToPage=~/Index.aspx");
            return;
        }

        if (dateChinkIn_One > dateChinkOut_One || dateChinkIn_One > dateChinkOut_Two)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=The check-out date must occur after the check-in date. Please change the date.&&GoToPage=~/Index.aspx");
            return;
        }

        if (dateChinkOut_One > dateChinkIn_Two)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=The second destination check-in date must occur after the first destination check-out date. Please change the date.&&GoToPage=~/Index.aspx");
            return;
        }

        if (dateDeparture > dateChinkIn_One || dateDeparture > dateChinkIn_Two)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=The departure  date must occur before the  check-in date. Please change the date.&&GoToPage=~/Index.aspx");
            return;
        }

        if (dateReturn < dateChinkOut_One || dateReturn < dateChinkOut_Two)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=The return  date must occur after the  check-out date. Please change the date.&&GoToPage=~/Index.aspx");
            return;
        }

        //Utility.SelectAirGroup = null;
        PackageSearchCondition PacakgeSearch = new PackageSearchCondition();
        HotelSearchCondition hotelSearchCondition2 = new HotelSearchCondition();

        PacakgeSearch.DepatrueAirPorts = new List<Terms.Common.Domain.Airport>();
        if (txtDepartureFrom.Text.Trim().Length > 3)
        {
            IList departureAirPorts = _commonService.FindAirportByCityName(txtDepartureFrom.Text.Trim());

            if (departureAirPorts.Count >= 1)
            {
                PacakgeSearch.DepatrueAirPorts = departureAirPorts;
            }
            else
            {
                List<Terms.Common.Domain.Airport> airportList = _ApplicationCacheFoundationDate.FindAllAirport();
                Terms.Common.Domain.Airport airport = MatchAirport(txtDepartureFrom.Text.Trim(), airportList);
                if (airport != null)
                {
                    PacakgeSearch.DepatrueAirPorts.Add(airport);
                }
            }
        }
        else
        {
            //PacakgeSearch.DepatrueAirPorts.Add(AirService.CommAirportDao.FindByAirport(txtDepartureFrom.Text.Trim()));
            Terms.Common.Domain.Airport airport = AirService.CommAirportDao.FindByAirport(txtDepartureFrom.Text.Trim());

            if (airport != null)
            {
                PacakgeSearch.DepatrueAirPorts.Add(airport);
            }
            else
            {
                IList departureAirPorts = AirService.CommAirportDao.FindByCityCode(txtDepartureFrom.Text.Trim());

                if (departureAirPorts.Count >= 1)
                {
                    PacakgeSearch.DepatrueAirPorts = departureAirPorts;
                }
            }
        }

        //IList departureAirPorts = _commonService.FindAirportByCityName(this.txtDepartureFrom.Text);
        //PacakgeSearch.DepatrueAirPorts = departureAirPorts;

        PacakgeSearch.DestinationAirPorts = new List<Terms.Common.Domain.Airport>();
        if (txtDestinationOne.Text.Trim().Length > 3)
        {
            IList DestinationOneAirPorts = _commonService.FindAirportByCityName(txtDestinationOne.Text.Trim());

            if (DestinationOneAirPorts.Count >= 1)
            {
                PacakgeSearch.DestinationAirPorts = DestinationOneAirPorts;
            }
            else
            {
                List<Terms.Common.Domain.Airport> airportList = _ApplicationCacheFoundationDate.FindAllAirport();
                Terms.Common.Domain.Airport airport = MatchAirport(txtDestinationOne.Text.Trim(), airportList);
                if (airport != null)
                {
                    PacakgeSearch.DestinationAirPorts.Add(airport);
                }
            }
        }
        else
        {
            Terms.Common.Domain.Airport airport = AirService.CommAirportDao.FindByAirport(txtDestinationOne.Text.Trim());

            if (airport != null)
            {
                PacakgeSearch.DestinationAirPorts.Add(airport);
            }
            else
            {
                IList DestinationOneAirPorts = AirService.CommAirportDao.FindByCityCode(txtDestinationOne.Text.Trim());

                if (DestinationOneAirPorts.Count >= 1)
                {
                    PacakgeSearch.DestinationAirPorts = DestinationOneAirPorts;
                }
            }
        }

        //IList DestinationOneAirPorts = _commonService.FindAirportByCityName(this.txtDestinationOne.Text);
        //PacakgeSearch.DestinationAirPorts = DestinationOneAirPorts;

        PacakgeSearch.DestinationAirPortsTwo = new List<Terms.Common.Domain.Airport>();
        if (txtDestinationTwo.Text.Trim().Length > 3)
        {
            IList ReturnAirPorts = _commonService.FindAirportByCityName(txtDestinationTwo.Text.Trim());

            if (ReturnAirPorts.Count >= 1)
            {
                PacakgeSearch.DestinationAirPortsTwo = ReturnAirPorts;
            }
            else
            {
                List<Terms.Common.Domain.Airport> airportList = _ApplicationCacheFoundationDate.FindAllAirport();
                Terms.Common.Domain.Airport airport = MatchAirport(txtDestinationTwo.Text.Trim(), airportList);
                if (airport != null)
                {
                    PacakgeSearch.DestinationAirPortsTwo.Add(airport);
                }
            }
        }
        else
        {
            Terms.Common.Domain.Airport airport = AirService.CommAirportDao.FindByAirport(txtDestinationTwo.Text.Trim());

            if (airport != null)
            {
                PacakgeSearch.DestinationAirPortsTwo.Add(airport);
            }
            else
            {
                IList ReturnAirPorts = AirService.CommAirportDao.FindByCityCode(txtDestinationTwo.Text.Trim());

                if (ReturnAirPorts.Count >= 1)
                {
                    PacakgeSearch.DestinationAirPortsTwo = ReturnAirPorts;
                }
            }
        }

        //IList ReturnAirPorts = _commonService.FindAirportByCityName(this.txtDestinationTwo.Text);
        //PacakgeSearch.DestinationAirPortsTwo = ReturnAirPorts;

        PacakgeSearch.AirSearchCondition.SetPassengerNumber(TERMS.Common.PassengerType.Adult, TravelerChange1.TotalAdults);
        PacakgeSearch.AirSearchCondition.SetPassengerNumber(TERMS.Common.PassengerType.Child, TravelerChange1.TotalChilds);

        //�ж�����ij����غ�Ŀ�ĵ���û�л���
        if (PacakgeSearch.DepatrueAirPorts.Count == 0)
        {
            Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=We found no matches for \"" + this.txtDepartureFrom.Text + "\"&GoToPage=PackageSearchTwoDestinations.aspx");
        }

        if (PacakgeSearch.DestinationAirPorts.Count == 0)
        {
            Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=We found no matches for \"" + this.txtDestinationOne.Text + "\"&GoToPage=PackageSearchTwoDestinations.aspx");
        }

        if (PacakgeSearch.DestinationAirPortsTwo.Count == 0)
        {
            Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=We found no matches for \"" + this.txtDestinationTwo.Text + "\"&GoToPage=PackageSearchTwoDestinations.aspx");
        }

        for (int i = 0; i < TravelerChange1.Rooms; i++)
        {
            RoomSearchCondition roomSearchCondition = new RoomSearchCondition();

            roomSearchCondition.Passengers.Add(TERMS.Common.PassengerType.Adult, TravelerChange1.Adults[i]);
            roomSearchCondition.Passengers.Add(TERMS.Common.PassengerType.Child, TravelerChange1.Childs[i]);

            PacakgeSearch.HotelSearchCondition.RoomSearchConditions.Add(roomSearchCondition);
            hotelSearchCondition2.RoomSearchConditions.Add(roomSearchCondition);
            PacakgeSearch.HotelSearchCondition2 = hotelSearchCondition2;
        }

        if (PacakgeSearch.DestinationAirPorts.Count > 0 || PacakgeSearch.DepatrueAirPorts.Count > 0 || PacakgeSearch.DestinationAirPortsTwo.Count > 0)
        {
            if (PacakgeSearch.DestinationAirPorts.Count > 1 || PacakgeSearch.DepatrueAirPorts.Count > 1 || PacakgeSearch.DestinationAirPortsTwo.Count > 1)
            {
                this.Transaction.IntKey = PacakgeSearch.GetHashCode();
                this.Transaction.CurrentSearchConditions = PacakgeSearch;
                //���������
                MoreAirportsSelect();
                this.btnSearch.Visible = false;
                this.btnSearch1.Visible = true;

            }
            else
            {
                PacakgeSearch.HotelSearchCondition.CheckIn = Convert.ToDateTime(this.dateCheckInOne.CDate);
                PacakgeSearch.HotelSearchCondition.CheckOut = Convert.ToDateTime(this.dateCheckOutOne.CDate);
                hotelSearchCondition2.CheckIn = Convert.ToDateTime(this.dateCheckInTwo.CDate);
                hotelSearchCondition2.CheckOut = Convert.ToDateTime(this.dateCheckOutTwo.CDate);
                PacakgeSearch.HotelSearchCondition.Location = ((Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[0]).CityCode;  //((City)_commonService.FindCitiesByName(this.txtDestinationOne.Text)[0]).Code;// "PVG";
                hotelSearchCondition2.Location = ((Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPortsTwo[0]).CityCode;  //((City)_commonService.FindCitiesByName(this.txtDestinationTwo.City)[0]).Code;// "PVG";
                PacakgeSearch.HotelSearchCondition.LocationIndicator = TERMS.Common.LocationIndicator.City;
                hotelSearchCondition2.LocationIndicator = TERMS.Common.LocationIndicator.City;
                PacakgeSearch.HotelSearchCondition.Country = ((Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[0]).City.Country.Code; // ((City)_commonService.FindCitiesByName(this.txtDestinationTwo.City)[0]).Country.Code;
                hotelSearchCondition2.Country = ((Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPortsTwo[0]).City.Country.Code;
                //hotelSearchCondition2.Country = this.txtDestinationTwo.Text;

                //����Cabin
                TERMS.Common.CabinType cabin = new TERMS.Common.CabinType();
                if (ddlClass.SelectedIndex == 0)
                {
                    cabin = TERMS.Common.CabinType.Economy;
                }
                else if (ddlClass.SelectedIndex == 1)
                {
                    cabin = TERMS.Common.CabinType.Business;
                }
                else if (ddlClass.SelectedIndex == 2)
                {
                    cabin = TERMS.Common.CabinType.First;
                }

                AirTripCondition DPTairTripCondition = new AirTripCondition();
                DPTairTripCondition.Departure = (Terms.Common.Domain.Airport)PacakgeSearch.DepatrueAirPorts[0];
                DPTairTripCondition.DepartureDate = Convert.ToDateTime(this.dateDeparture.CDate);
                DPTairTripCondition.Destination = (Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[0];
                DPTairTripCondition.IsDepartureTimeSpecified = this.chbFlexible.Checked;
                DPTairTripCondition.Cabin = cabin;
                PacakgeSearch.AirSearchCondition.AddTripCondition(DPTairTripCondition);
                PacakgeSearch.AirSearchCondition.Airlines = null;
                AirTripCondition RTNairTripCondition = new AirTripCondition();
                RTNairTripCondition.Departure = (Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPortsTwo[0];
                RTNairTripCondition.DepartureDate = Convert.ToDateTime(this.dateReturn.CDate);
                RTNairTripCondition.Destination = (Terms.Common.Domain.Airport)PacakgeSearch.DepatrueAirPorts[0];
                RTNairTripCondition.IsDepartureTimeSpecified = this.chbFlexible.Checked;
                RTNairTripCondition.Cabin = cabin;
                PacakgeSearch.AirSearchCondition.AddTripCondition(RTNairTripCondition);
                PacakgeSearch.AirSearchCondition.FlightType = "openjaw";
                //PacakgeSearch.AirSearchCondition.ProductType = Terms.Base.Utility.ProductType.Package;
                this.Transaction.IntKey = PacakgeSearch.GetHashCode();
                this.Transaction.CurrentSearchConditions = PacakgeSearch;
                this.Transaction.CurrentTransactionObject = new TERMS.Business.Centers.SalesCenter.TransactionObject();
                //PacakgeSearch.OptionalHotelSearchConditions.Clear();Ҫɾ������ȫ��ɾ��
                PacakgeSearch.SetOptionalHotelSearchConditions(hotelSearchCondition2);
                //��¼Search Package�¼�
                if(Utility.IsSubAgent)
                    OperaterAdvice.DoAdvice(Terms.Configuration.Utility.ConfigurationConst.OperateType.SUB_SearchPackage, this);
                else
                    OperaterAdvice.DoAdvice(Terms.Configuration.Utility.ConfigurationConst.OperateType.MV_SearchPackage, this);
                this.Page.Response.Redirect("~/Page/Common/Searching1.aspx?target=~/Page/Package2/SelectRoomRates" + "&ConditionID=" + this.Transaction.IntKey.ToString());
            }
        }
        else
        {

        }
    }
    protected void btnSearch_h_Click(object sender, EventArgs e)
    {
        if (txtFullName.Text.Trim().Length == 0)
        {
            div_1.Visible = true;
            lblError1.Text = Resources.HintInfo.Hotel_Error_City;
            return;
        }

        txtName.Text = ConvertName();

        DateTime dtNow = DateTime.Now;
        hotelSearchHotelByZyl.Info("MV_B2C Hotel Serach Start : " + dtNow.ToString("HH:mm:ss") + ":" + dtNow.Millisecond);

        if (Utility.IsSubAgent)
            OperaterAdvice.DoAdvice(Terms.Configuration.Utility.ConfigurationConst.OperateType.SUB_SearchHotel, this);
        else
            OperaterAdvice.DoAdvice(Terms.Configuration.Utility.ConfigurationConst.OperateType.MV_SearchHotel, this);
        if (!Page.IsValid)
            return;

        try
        {
            //log begin 20090312 Leon
            log.Info("\r\n");

            if (!Utility.IsLogin)
            {
                log.Info(PageUtility.HotelLogRandomNumber.ToString() + " >====================Not Login========================");
            }
            else
            {
                log.Info(PageUtility.HotelLogRandomNumber.ToString() + " >==========================Login========================");
            }

            log.Info(PageUtility.HotelLogRandomNumber.ToString() + " >SearchClick Begin Start time : " + System.DateTime.Now);
            //log end 20090312 Leon
        }
        catch
        {

        }

        DateTime dateChinkIn_H = Convert.ToDateTime(this.txtCheckin_h.CDate);
        DateTime dateChinkOut_H = Convert.ToDateTime(this.txtCheckout_h.CDate);

        if (dateChinkIn_H < DateTime.Now.AddDays(7))
        {
            if (Utility.IsLogin && Utility.IsSubAgent)
            {
                if (dateChinkIn_H < DateTime.Now.AddDays(3))
                {
                    div_2.Visible = true;
                    lblError2.Text = Resources.HintInfo.Hotel_Date_Error1;
                    return;
                }
            }
            else
            {
                div_2.Visible = true;
                lblError2.Text = Resources.HintInfo.Hotel_Date_Error1;
                return;
            }
        }

        if (dateChinkOut_H < DateTime.Now.AddDays(7))
        {
            if (Utility.IsLogin && Utility.IsSubAgent)
            {
                if (dateChinkOut_H < DateTime.Now.AddDays(3))
                {
                    div_2.Visible = true;
                    lblError2.Text = Resources.HintInfo.Hotel_Date_Error2;
                    return;
                }
            }
            else
            {
                div_2.Visible = true;
                lblError2.Text = Resources.HintInfo.Hotel_Date_Error2;
                return;
            }
        }

        if (dateChinkIn_H < DateTime.Today && dateChinkOut_H < DateTime.Today)
        {
            div_2.Visible = true;
            lblError2.Text = Resources.HintInfo.Hotel_Date_Error3;
            return;
        }

        if (dateChinkIn_H <= DateTime.Today)
        {
            div_2.Visible = true;
            lblError2.Text = Resources.HintInfo.Hotel_Date_Error4;
            return;
        }

        if (dateChinkIn_H > dateChinkOut_H)
        {
            div_2.Visible = true;
            lblError2.Text = Resources.HintInfo.Hotel_Date_Error5;
            return;
        }

        HotelSearchCondition hotelSearchCondition = new HotelSearchCondition();

        for (int i = 0; i < TravelerChange1.Rooms; i++)
        {
            RoomSearchCondition roomSearchCondition = new RoomSearchCondition();

            roomSearchCondition.Passengers.Add(PassengerType.Adult, TravelerChange1.Adults[i]);
            roomSearchCondition.Passengers.Add(PassengerType.Child, TravelerChange1.Childs[i]);

            hotelSearchCondition.RoomSearchConditions.Add(roomSearchCondition);
        }

        hotelSearchCondition.UserInputInfo = txtFullName.Text;
        hotelSearchCondition.LocationIndicator = LocationIndicator.City;
        hotelSearchCondition.CheckIn = Convert.ToDateTime(this.txtCheckin_h.CDate);
        hotelSearchCondition.CheckOut = Convert.ToDateTime(this.txtCheckout_h.CDate);
        this.Transaction.IntKey = hotelSearchCondition.GetHashCode();
        this.Transaction.CurrentSearchConditions = hotelSearchCondition;
        this.Transaction.CurrentTransactionObject = new TERMS.Business.Centers.SalesCenter.TransactionObject();
        Utility.IsTourMain = false;//�����Ƿ���Tour��־

        if (this.txtName.Text.Trim().Length == 3)
        {
            Terms.Common.Domain.City CityName = _cityService.Get(this.txtName.Text);

            if (CityName != null)
            {
                ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Location = CityName.Code;
                ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Country = CityName.CountryCode;
            }
            else
            {
                Terms.Common.Domain.Airport airport = _airportService.Get(this.txtName.Text);
                if (airport != null)
                {
                    ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Location = airport.City.Code;
                    ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Country = airport.City.CountryCode;
                }
                else
                {
                    IList ilCityName = _cityService.FindSomeCityByName(this.txtName.Text);
                    if (ilCityName.Count > 1)
                    {
                        Session["CityNameList"] = ilCityName;
                        this.Response.Redirect(SaleWebSuffix + "Page/Hotel2/SearchMoreCityForm.aspx?CityName=" + this.txtName.Text);
                    }
                    else if (ilCityName.Count == 1)
                    {
                        Terms.Common.Domain.City citylist = (Terms.Common.Domain.City)ilCityName[0];
                        ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Location = citylist.Code;
                        ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Country = citylist.CountryCode;
                    }
                    else if (ilCityName == null || ilCityName.Count == 0)
                    {
                        Session["CityNameList"] = null;
                        this.Response.Redirect(SaleWebSuffix + "Page/Hotel2/SearchMoreCityForm.aspx?CityName=" + this.txtName.Text);
                    }
                }
            }

        }
        else
        {
            //�ж��Ƿ��ж��.�������ͬ��SerachMoreҳ�����ѡ��,���û�����������ҳ��
            IList ilCityName = _cityService.FindSomeCityByName(this.txtName.Text);

            if (ilCityName.Count > 1)
            {
                Session["CityNameList"] = ilCityName;
                this.Response.Redirect(SaleWebSuffix + "Page/Hotel2/SearchMoreCityForm.aspx?CityName=" + this.txtName.Text);
            }
            else if (ilCityName.Count == 1)
            {
                Terms.Common.Domain.City citylist = (Terms.Common.Domain.City)ilCityName[0];
                ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Location = citylist.Code;
                ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Country = citylist.CountryCode;
            }
            else if (ilCityName == null || ilCityName.Count == 0)
            {
                Terms.Common.Domain.Airport airport = _airportService.Get(this.txtName.Text);
                if (airport != null)
                {
                    ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Location = airport.City.Code;
                    ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Country = airport.City.CountryCode;
                }
                else
                {
                    this.Response.Redirect(SaleWebSuffix + "Page/Hotel2/SearchMoreCityForm.aspx?CityName=" + this.txtName.Text);
                }
            }
        }

        log.Info(PageUtility.HotelLogRandomNumber.ToString() + " >Redirect Searching1.aspx Begin Start time : " + System.DateTime.Now);

        hotelSearchHotelByZyl.Debug("Hotel Start :" + DateTime.Now.ToLongTimeString());

        dtNow = DateTime.Now;
        hotelSearchHotelByZyl.Info("MV_B2C Hotel Serach To Searching1 Start : " + dtNow.ToString("HH:mm:ss") + ":" + dtNow.Millisecond);

        this.Response.Redirect(SaleWebSuffix + "Page/Common/Searching1.aspx?target=~/Page/Hotel2/SearchResultForm" + "&ConditionID=" + this.Transaction.IntKey.ToString());
    }
    protected void btnSearch1_Click(object sender, EventArgs e)
    {
        if (listBDepartureAirport.Visible == true && listBDepartureAirport.SelectedIndex == -1)
        {
            return;
        }
        if (listBReturnAirport.Visible == true && listBReturnAirport.SelectedIndex == -1)
        {
            return;
        }
        PackageSearchCondition PacakgeSearch = (PackageSearchCondition)this.Transaction.CurrentSearchConditions;

        if (this.departureCalendar.CDate == "__/__/____")
        {
            this.lbDepDateErr.Visible = true;
            return;
        }

        if (this.returnCalendar.CDate == "__/__/____")
        {
            this.lbRtnDateErr.Visible = true;
            return;
        }

        DateTime dateDept_A = Convert.ToDateTime(this.departureCalendar.CDate);
        DateTime dateRtn_A = Convert.ToDateTime(this.returnCalendar.CDate);
        DateTime dateChinkIn_H;
        DateTime dateChinkOut_H;

        if (this.dateCheckIn.CDate == "__/__/____")
            dateChinkIn_H = dateDept_A.AddDays(1);  //若Check in为空,则默认为Air出发日期加一天

        else
            dateChinkIn_H = Convert.ToDateTime(this.dateCheckIn.CDate);

        if (this.dateCheckOut.CDate == "__/__/____")
            dateChinkOut_H = dateRtn_A;             //若Check out为空,则默认为Air返回日期
        else
            dateChinkOut_H = Convert.ToDateTime(this.dateCheckOut.CDate);

        if (dateChinkIn_H < DateTime.Today && dateChinkOut_H < DateTime.Today)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=We can only accept dates that occur between " + DateTime.Today.AddDays(1).ToString("MM/dd/yyyy") + " and 12/27/2008. Please enter a new date.&&GoToPage=~/Page/Package/SearchConditionsMeassageForm.aspx", false);
            return;
        }

        if (dateChinkIn_H <= DateTime.Today)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=The check-in date must occur after the today date. Please change the date.&&GoToPage=~/Page/Package/SearchConditionsMeassageForm.aspx", false);
            return;
        }

        if (dateChinkIn_H > dateChinkOut_H)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=The check-out date must occur after the check-in date. Please change the date.&&GoToPage=~/Page/Package/SearchConditionsMeassageForm.aspx", false);
            return;
        }

        if (dateDept_A >= dateRtn_A)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=The Depart date must occur after the Return date. Please change the date.&&GoToPage=~/Page/Package/SearchConditionsMeassageForm.aspx", false);
            return;
        }

        if (dateDept_A > dateChinkIn_H)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=The check-in date must occur after the Depart date. Please change the date.&&GoToPage=~/Page/Package/SearchConditionsMeassageForm.aspx", false);
            return;
        }

        if (dateChinkOut_H > dateRtn_A)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=The Return date must occur after the check-out date. Please change the date.&&GoToPage=~/Page/Package/SearchConditionsMeassageForm.aspx", false);
            return;
        }

        PacakgeSearch.HotelSearchCondition.CheckIn = dateChinkIn_H;
        PacakgeSearch.HotelSearchCondition.CheckOut = dateChinkOut_H;

        if (PacakgeSearch.DestinationAirPorts.Count > 1)
            PacakgeSearch.HotelSearchCondition.Location = ((Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[this.listBReturnAirport.SelectedIndex]).City.Code;//"PVG";
        else
            PacakgeSearch.HotelSearchCondition.Location = ((Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[0]).City.Code;
        PacakgeSearch.HotelSearchCondition.LocationIndicator = TERMS.Common.LocationIndicator.City;
        PacakgeSearch.HotelSearchCondition.Country = ((Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[0]).City.Country.Code;

        PacakgeSearch.HotelSearchCondition.RoomSearchConditions.Clear();
        for (int i = 0; i < TravelerChange1.Rooms; i++)
        {
            RoomSearchCondition roomSearchCondition = new RoomSearchCondition();

            roomSearchCondition.Passengers.Add(TERMS.Common.PassengerType.Adult, TravelerChange1.Adults[i]);
            roomSearchCondition.Passengers.Add(TERMS.Common.PassengerType.Child, TravelerChange1.Childs[i]);

            PacakgeSearch.HotelSearchCondition.RoomSearchConditions.Add(roomSearchCondition);
        }

        PacakgeSearch.AirSearchCondition.AirTripCondition.Clear();

        PacakgeSearch.AirSearchCondition.SetPassengerNumber(TERMS.Common.PassengerType.Adult, TravelerChange1.TotalAdults);
        PacakgeSearch.AirSearchCondition.SetPassengerNumber(TERMS.Common.PassengerType.Child, TravelerChange1.TotalChilds);

        AirTripCondition DPTairTripCondition = new AirTripCondition();
        if (PacakgeSearch.DepatrueAirPorts.Count > 1)
            DPTairTripCondition.Departure = (Terms.Common.Domain.Airport)PacakgeSearch.DepatrueAirPorts[this.listBDepartureAirport.SelectedIndex];
        else
            DPTairTripCondition.Departure = (Terms.Common.Domain.Airport)PacakgeSearch.DepatrueAirPorts[0];
        DPTairTripCondition.DepartureDate = Convert.ToDateTime(this.departureCalendar.CDate);
        if (PacakgeSearch.DestinationAirPorts.Count > 1)
            DPTairTripCondition.Destination = (Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[this.listBReturnAirport.SelectedIndex];
        else
            DPTairTripCondition.Destination = (Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[0];
        //DPTairTripCondition.IsDepartureTimeSpecified = this.chkflexible.Checked;
        PacakgeSearch.AirSearchCondition.AddTripCondition(DPTairTripCondition);
        PacakgeSearch.AirSearchCondition.Airlines = null;

        AirTripCondition RTNairTripCondition = new AirTripCondition();
        if (PacakgeSearch.DestinationAirPorts.Count > 1)
            RTNairTripCondition.Departure = (Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[this.listBReturnAirport.SelectedIndex];
        else
            RTNairTripCondition.Departure = (Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[0];
        RTNairTripCondition.DepartureDate = Convert.ToDateTime(this.returnCalendar.CDate);
        if (PacakgeSearch.DepatrueAirPorts.Count > 1)
            RTNairTripCondition.Destination = (Terms.Common.Domain.Airport)PacakgeSearch.DepatrueAirPorts[this.listBDepartureAirport.SelectedIndex];
        else
            RTNairTripCondition.Destination = (Terms.Common.Domain.Airport)PacakgeSearch.DepatrueAirPorts[0];
        //RTNairTripCondition.IsDepartureTimeSpecified = this.chkflexible.Checked;
        PacakgeSearch.AirSearchCondition.AddTripCondition(RTNairTripCondition);

        PacakgeSearch.AirSearchCondition.FlightType = "roundtrip";
        //PacakgeSearch.AirSearchCondition.ProductType = TERMS.Common.ProductType.Package;
        PacakgeSearch.OptionalHotelSearchConditions.Clear();
        this.Transaction.CurrentSearchConditions = PacakgeSearch;

        this.Page.Response.Redirect("~/Page/Common/Searching1.aspx?target=~/Page/Package/PackageSearchResultForm" + "&ConditionID=" + this.Transaction.IntKey.ToString(), false);
    }
Example #7
0
    protected void btn_Search_AH_Click(object sender, EventArgs e)
    {
        if (Utility.IsSubAgent)
            OperaterAdvice.DoAdvice(Terms.Configuration.Utility.ConfigurationConst.OperateType.SUB_SearchPackage, this);
        else
            OperaterAdvice.DoAdvice(Terms.Configuration.Utility.ConfigurationConst.OperateType.MV_SearchPackage, this);

        if (!Page.IsValid)
            return;

        DateTime dateDept_A = Convert.ToDateTime(this.dateDeparture_AH.CDate);
        DateTime dateRtn_A = Convert.ToDateTime(this.dateReturn_AH.CDate);
        DateTime dateChinkIn_H;
        DateTime dateChinkOut_H;

        txtFrom_AH.Text = ConvertName(txtFullFrom_AH.Text);
        txtTo_AH.Text = ConvertName(txtFullTo_AH.Text);

        if (this.CheckIn_AH.CDate == "__/__/____" || this.CheckIn_AH.CDate == "")
            dateChinkIn_H = dateDept_A.AddDays(1);  //若Check in为空,则默认为Air出发日期加一天
        else
            dateChinkIn_H = Convert.ToDateTime(this.CheckIn_AH.CDate);

        if (this.CheckOut_AH.CDate == "__/__/____" || this.CheckOut_AH.CDate == "")
            dateChinkOut_H = dateRtn_A;             //若Check out为空,则默认为Air返回日期
        else
            dateChinkOut_H = Convert.ToDateTime(this.CheckOut_AH.CDate);

        if (dateDept_A < DateTime.Now.AddDays(7))
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "Warting", "<script language=javascript>alert('Departure date is greater than the current date seven days.');</script>");
            return;
        }

        if (dateRtn_A < DateTime.Now.AddDays(7))
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "Warting", "<script language=javascript>alert('Return date is greater than the current date seven days.');</script>");
            return;
        }

        if (dateChinkIn_H < DateTime.Now.AddDays(7))
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "Warting", "<script language=javascript>alert('Departure date is greater than the current date seven days.');</script>");
            return;
        }

        if (dateChinkOut_H < DateTime.Now.AddDays(7))
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "Warting", "<script language=javascript>alert('Return date is greater than the current date seven days.');</script>");
            return;
        }

        if (dateChinkIn_H < DateTime.Today && dateChinkOut_H < DateTime.Today)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=We can only accept dates that occur between " + DateTime.Today.AddDays(1).ToString("MM/dd/yyyy") + " and 12/27/2008. Please enter a new date.&&GoToPage=~/Index.aspx");
            return;
        }

        if (dateChinkIn_H <= DateTime.Today)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=The check-in date must occur after the today date. Please change the date.&&GoToPage=~/Index.aspx");
            return;
        }

        if (dateChinkIn_H > dateChinkOut_H)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=The check-out date must occur after the check-in date. Please change the date.&&GoToPage=~/Index.aspx");
            return;
        }

        if (dateDept_A >= dateRtn_A)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=The Depart date must occur after the Return date. Please change the date.&&GoToPage=~/Index.aspx");
            return;
        }

        if (dateDept_A > dateChinkIn_H)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=The check-in date must occur after the Depart date. Please change the date.&&GoToPage=~/Index.aspx");
            return;
        }

        if (dateChinkOut_H > dateRtn_A)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=The Return date must occur after the check-out date. Please change the date.&&GoToPage=~/Index.aspx");
            return;
        }

        //Utility.SelectAirGroup = null;
        PackageSearchCondition PacakgeSearch = new PackageSearchCondition();
        PacakgeSearch.IsReset = true;

        PacakgeSearch.DepatrueAirPorts = new List<Terms.Common.Domain.Airport>();
        if (txtFrom_AH.Text.Trim().Length > 3)
        {
            IList departureAirPorts = _CommonService.FindAirportByCityName(txtFrom_AH.Text.Trim());

            if (departureAirPorts.Count >= 1)
            {
                PacakgeSearch.DepatrueAirPorts = departureAirPorts;
            }
            else
            {
                List<Terms.Common.Domain.Airport> airportList = _ApplicationCacheFoundationDate.FindAllAirport();
                Terms.Common.Domain.Airport airport = MatchAirport(txtFrom_AH.Text.Trim(), airportList);
                if (airport != null)
                {
                    PacakgeSearch.DepatrueAirPorts.Add(airport);
                }
            }
        }
        else
        {
            //PacakgeSearch.DepatrueAirPorts.Add(AirService.CommAirportDao.FindByAirport(txtDepartureFrom.Text.Trim()));
            Terms.Common.Domain.Airport airport = AirService.CommAirportDao.FindByAirport(txtFrom_AH.Text.Trim());

            if (airport != null)
            {
                PacakgeSearch.DepatrueAirPorts.Add(airport);
            }
            else
            {
                IList departureAirPorts = AirService.CommAirportDao.FindByCityCode(txtFrom_AH.Text.Trim());

                if (departureAirPorts.Count >= 1)
                {
                    PacakgeSearch.DepatrueAirPorts = departureAirPorts;
                }
            }
        }

        PacakgeSearch.DestinationAirPorts = new List<Terms.Common.Domain.Airport>();
        if (txtTo_AH.Text.Trim().Length > 3)
        {
            IList DestinationOneAirPorts = _CommonService.FindAirportByCityName(txtTo_AH.Text.Trim());

            if (DestinationOneAirPorts.Count >= 1)
            {
                PacakgeSearch.DestinationAirPorts = DestinationOneAirPorts;
            }
            else
            {
                List<Terms.Common.Domain.Airport> airportList = _ApplicationCacheFoundationDate.FindAllAirport();
                Terms.Common.Domain.Airport airport = MatchAirport(txtTo_AH.Text.Trim(), airportList);
                if (airport != null)
                {
                    PacakgeSearch.DestinationAirPorts.Add(airport);
                }
            }
        }
        else
        {
            Terms.Common.Domain.Airport airport = AirService.CommAirportDao.FindByAirport(txtTo_AH.Text.Trim());

            if (airport != null)
            {
                PacakgeSearch.DestinationAirPorts.Add(airport);
            }
            else
            {
                IList DestinationOneAirPorts = AirService.CommAirportDao.FindByCityCode(txtTo_AH.Text.Trim());

                if (DestinationOneAirPorts.Count >= 1)
                {
                    PacakgeSearch.DestinationAirPorts = DestinationOneAirPorts;
                }
            }
        }

        PacakgeSearch.AirSearchCondition.SetPassengerNumber(TERMS.Common.PassengerType.Adult, TravelerChange2.TotalAdults);
        PacakgeSearch.AirSearchCondition.SetPassengerNumber(TERMS.Common.PassengerType.Child, TravelerChange2.TotalChilds);

        //判断输入的出发地和目的地有没有机场
        if (PacakgeSearch.DepatrueAirPorts.Count == 0)
        {
            Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=We found no matches for \"" + this.txtFrom_AH.Text + "\"&GoToPage=~/index.aspx");
        }

        if (PacakgeSearch.DestinationAirPorts.Count == 0)
        {
            Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=We found no matches for \"" + this.txtTo_AH.Text + "\"&GoToPage=~/index.aspx");
        }

        for (int i = 0; i < TravelerChange2.Rooms; i++)
        {
            RoomSearchCondition roomSearchCondition = new RoomSearchCondition();

            roomSearchCondition.Passengers.Add(TERMS.Common.PassengerType.Adult, TravelerChange2.Adults[i]);
            roomSearchCondition.Passengers.Add(TERMS.Common.PassengerType.Child, TravelerChange2.Childs[i]);

            PacakgeSearch.HotelSearchCondition.RoomSearchConditions.Add(roomSearchCondition);
        }

        if (PacakgeSearch.DestinationAirPorts.Count > 0 || PacakgeSearch.DepatrueAirPorts.Count > 0)
        {
            PacakgeSearch.HotelSearchCondition.CheckIn = dateChinkIn_H.AddDays(0);
            PacakgeSearch.HotelSearchCondition.CheckOut = dateChinkOut_H;
            PacakgeSearch.HotelSearchCondition.Location = ((Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[0]).CityCode;// "PVG";
            PacakgeSearch.HotelSearchCondition.LocationIndicator = TERMS.Common.LocationIndicator.City;
            PacakgeSearch.HotelSearchCondition.Country = ((Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[0]).City.Country.Code;

            AirTripCondition DPTairTripCondition = new AirTripCondition();
            DPTairTripCondition.Departure = (Airport)PacakgeSearch.DepatrueAirPorts[0];
            DPTairTripCondition.DepartureDate = Convert.ToDateTime(this.dateDeparture_AH.CDate);
            DPTairTripCondition.Destination = (Airport)PacakgeSearch.DestinationAirPorts[0];
            DPTairTripCondition.IsDepartureTimeSpecified = this.chbFlexible_AH.Checked;
            PacakgeSearch.AirSearchCondition.AddTripCondition(DPTairTripCondition);
            AirTripCondition RTNairTripCondition = new AirTripCondition();
            RTNairTripCondition.Departure = (Airport)PacakgeSearch.DestinationAirPorts[0];
            RTNairTripCondition.DepartureDate = Convert.ToDateTime(this.dateReturn_AH.CDate);
            RTNairTripCondition.Destination = (Airport)PacakgeSearch.DepatrueAirPorts[0];
            RTNairTripCondition.IsDepartureTimeSpecified = this.chbFlexible_AH.Checked;
            PacakgeSearch.AirSearchCondition.AddTripCondition(RTNairTripCondition);
            PacakgeSearch.AirSearchCondition.FlightType = "roundtrip";

            if (ddlAirline.SelectedValue != "all")
            {
                PacakgeSearch.AirSearchCondition.Airlines = new string[1] { ddlAirline.SelectedValue.Trim() };
            }
            else
            {
                PacakgeSearch.AirSearchCondition.Airlines = null;
            }

            Utility.IsTourMain = false;//设置是否是Tour标志
            this.Transaction.IntKey = PacakgeSearch.GetHashCode();
            this.Transaction.CurrentSearchConditions = PacakgeSearch;
            this.Transaction.CurrentTransactionObject = new TERMS.Business.Centers.SalesCenter.TransactionObject();

            //设置Cabin
            TERMS.Common.CabinType cabin = new TERMS.Common.CabinType();
            if (rdoLstCabin_AH.SelectedIndex == 0)
            {
                cabin = TERMS.Common.CabinType.Economy;
            }
            else if (rdoLstCabin_AH.SelectedIndex == 1)
            {
                cabin = TERMS.Common.CabinType.Business;
            }
            else if (rdoLstCabin_AH.SelectedIndex == 2)
            {
                cabin = TERMS.Common.CabinType.First;
            }

            for (int i = 0; i < PacakgeSearch.AirSearchCondition.AirTripCondition.Count; i++)
                PacakgeSearch.AirSearchCondition.AirTripCondition[i].Cabin = cabin;

            if (PacakgeSearch.DestinationAirPorts.Count > 1 || PacakgeSearch.DepatrueAirPorts.Count > 1)
            {
                this.Page.Response.Redirect("~/Page/Package/PackageSearchMoreForm.aspx?ConditionID=" + this.Transaction.IntKey.ToString());
            }
            else
            {
                Utility.Transaction.Difference.Clear();
                Utility.Transaction.Difference.FromTime = DateTime.Now;
                Utility.Transaction.Difference.StarTime = DateTime.Now;
                Utility.Transaction.Difference.From = "PackageSearchMoreForm Redirect Start";
                this.Page.Response.Redirect("~/Page/Common/Searching1.aspx?target=~/Page/Package2/ViewYourPackages" + "&ConditionID=" + this.Transaction.IntKey.ToString());
            }
        }
        else
        {

        }
    }
    public void imgbSearch_Click(object sender, EventArgs e)
    {
        if (Convert.ToDateTime(this.txtCheckinDate.CDate) < DateTime.Now.AddDays(7))
        {
            if (Utility.IsLogin && Utility.IsSubAgent)
            {
                if (Convert.ToDateTime(this.txtCheckinDate.CDate) < DateTime.Now.AddDays(3))
                {
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "Warting", "<script language=javascript>alert('Departure date is greater than the current date seven days.');</script>");
                    return;
                }
            }
            else
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "Warting", "<script language=javascript>alert('Departure date is greater than the current date seven days.');</script>");
                return;
            }
        }

        if (Convert.ToDateTime(this.txtCheckoutDate.CDate) < DateTime.Now.AddDays(7))
        {
            if (Utility.IsLogin && Utility.IsSubAgent)
            {
                if (Convert.ToDateTime(this.txtCheckoutDate.CDate) < DateTime.Now.AddDays(3))
                {
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "Warting", "<script language=javascript>alert('Return date is greater than the current date seven days.');</script>");
                    return;
                }
            }
            else
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "Warting", "<script language=javascript>alert('Return date is greater than the current date seven days.');</script>");
                return;
            }
        }

        if (!Utility.IsSearchConditionNull)
        {
            HotelSearchCondition hotelSearchCondition = new HotelSearchCondition();
            if (ddlRooms.SelectedValue == "1")
            {
                RoomSearchCondition roomSearchCondition = new RoomSearchCondition();

                roomSearchCondition.Passengers.Add(PassengerType.Adult, int.Parse(ddlAdult1.SelectedValue));
                roomSearchCondition.Passengers.Add(PassengerType.Child, int.Parse(ddlChild1.SelectedValue));

                hotelSearchCondition.RoomSearchConditions.Add(roomSearchCondition);
            }
            if (ddlRooms.SelectedValue == "2")
            {
                RoomSearchCondition roomSearchCondition1 = new RoomSearchCondition();

                roomSearchCondition1.Passengers.Add(PassengerType.Adult, int.Parse(ddlAdult1.SelectedValue));
                roomSearchCondition1.Passengers.Add(PassengerType.Child, int.Parse(ddlChild1.SelectedValue));

                hotelSearchCondition.RoomSearchConditions.Add(roomSearchCondition1);

                RoomSearchCondition roomSearchCondition = new RoomSearchCondition();

                roomSearchCondition.Passengers.Add(PassengerType.Adult, int.Parse(ddlAdult2.SelectedValue));
                roomSearchCondition.Passengers.Add(PassengerType.Child, int.Parse(ddlChild2.SelectedValue));

                hotelSearchCondition.RoomSearchConditions.Add(roomSearchCondition);
            }
            if (ddlRooms.SelectedValue == "3")
            {
                RoomSearchCondition roomSearchCondition1 = new RoomSearchCondition();

                roomSearchCondition1.Passengers.Add(PassengerType.Adult, int.Parse(ddlAdult1.SelectedValue));
                roomSearchCondition1.Passengers.Add(PassengerType.Child, int.Parse(ddlChild1.SelectedValue));

                hotelSearchCondition.RoomSearchConditions.Add(roomSearchCondition1);

                RoomSearchCondition roomSearchCondition2 = new RoomSearchCondition();

                roomSearchCondition2.Passengers.Add(PassengerType.Adult, int.Parse(ddlAdult2.SelectedValue));
                roomSearchCondition2.Passengers.Add(PassengerType.Child, int.Parse(ddlChild2.SelectedValue));

                hotelSearchCondition.RoomSearchConditions.Add(roomSearchCondition2);

                RoomSearchCondition roomSearchCondition = new RoomSearchCondition();

                roomSearchCondition.Passengers.Add(PassengerType.Adult, int.Parse(ddlAdult3.SelectedValue));
                roomSearchCondition.Passengers.Add(PassengerType.Child, int.Parse(ddlChild3.SelectedValue));

                hotelSearchCondition.RoomSearchConditions.Add(roomSearchCondition);
            }
            if (ddlRooms.SelectedValue == "4")
            {
                RoomSearchCondition roomSearchCondition1 = new RoomSearchCondition();

                roomSearchCondition1.Passengers.Add(PassengerType.Adult, int.Parse(ddlAdult1.SelectedValue));
                roomSearchCondition1.Passengers.Add(PassengerType.Child, int.Parse(ddlChild1.SelectedValue));

                hotelSearchCondition.RoomSearchConditions.Add(roomSearchCondition1);

                RoomSearchCondition roomSearchCondition2 = new RoomSearchCondition();

                roomSearchCondition2.Passengers.Add(PassengerType.Adult, int.Parse(ddlAdult2.SelectedValue));
                roomSearchCondition2.Passengers.Add(PassengerType.Child, int.Parse(ddlChild2.SelectedValue));

                hotelSearchCondition.RoomSearchConditions.Add(roomSearchCondition2);

                RoomSearchCondition roomSearchCondition3 = new RoomSearchCondition();

                roomSearchCondition3.Passengers.Add(PassengerType.Adult, int.Parse(ddlAdult3.SelectedValue));
                roomSearchCondition3.Passengers.Add(PassengerType.Child, int.Parse(ddlChild3.SelectedValue));

                hotelSearchCondition.RoomSearchConditions.Add(roomSearchCondition3);

                RoomSearchCondition roomSearchCondition = new RoomSearchCondition();

                roomSearchCondition.Passengers.Add(PassengerType.Adult, int.Parse(ddlAdult4.SelectedValue));
                roomSearchCondition.Passengers.Add(PassengerType.Child, int.Parse(ddlChild4.SelectedValue));

                hotelSearchCondition.RoomSearchConditions.Add(roomSearchCondition);
            }

            //hotelSearchCondition.Location = this.ddlCity.SelectedValue;
            hotelSearchCondition.LocationIndicator = LocationIndicator.City;
            hotelSearchCondition.CheckIn = Convert.ToDateTime(txtCheckinDate.CDate);
            hotelSearchCondition.CheckOut = Convert.ToDateTime(txtCheckoutDate.CDate);
            //hotelSearchCondition.Country = this.ddlCountry.SelectedValue;
            Utility.Transaction.CurrentSearchConditions = hotelSearchCondition;
            Utility.Transaction.CurrentTransactionObject = new TERMS.Business.Centers.SalesCenter.TransactionObject();
            Utility.IsTourMain = false;//设置是否是Tour标志

            if (this.txtFullName.Text.Trim().Length == 0)
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "Warting", "<script language=javascript>alert('Please input city name or code or airport');</script>");
                return;
            }

            hotelSearchCondition.UserInputInfo = this.txtFullName.Text.Trim();

            this.txtName.Text = ConvertName();

            if (this.txtName.Text.Trim().Length == 3)
            {
                Terms.Common.Domain.City CityName = _cityService.Get(this.txtName.Text);

                if (CityName != null)
                {
                    ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Location = CityName.Code;
                    ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Country = CityName.CountryCode;
                    //Session["CityNameList"] = ilCityName;
                    //this.Response.Redirect("~/Page/Common/SearchMoreForm.aspx?CityName=" + this.txtCityName.Text);
                }
                else
                {
                    Terms.Common.Domain.Airport airport = _airportService.Get(this.txtName.Text);
                    if (airport != null)
                    {
                        ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Location = airport.City.Code;
                        ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Country = airport.City.CountryCode;
                    }
                    else
                    {
                        IList ilCityName = _cityService.FindSomeCityByName(this.txtName.Text);
                        if (ilCityName.Count > 1)
                        {
                            Session["CityNameList"] = ilCityName;
                            this.Response.Redirect(PageUtility.UrlSuffix + "Page/Hotel2/SearchMoreCityForm.aspx?CityName=" + this.txtName.Text);
                        }
                        else if (ilCityName.Count == 1)
                        {
                            Terms.Common.Domain.City citylist = (Terms.Common.Domain.City)ilCityName[0];
                            ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Location = citylist.Code;
                            ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Country = citylist.CountryCode;
                        }
                        else if (ilCityName == null || ilCityName.Count == 0)
                        {
                            Session["CityNameList"] = null;
                            this.Response.Redirect(PageUtility.UrlSuffix + "Page/Hotel2/SearchMoreCityForm.aspx?CityName=" + this.txtName.Text);
                        }
                    }
                }

            }
            else
            {
                //判断是否有多个.如果有相同则到SerachMore页面进行选择,如果没有则进入搜索页面
                IList ilCityName = _cityService.FindSomeCityByName(this.txtName.Text);

                if (ilCityName.Count > 1)
                {
                    Session["CityNameList"] = ilCityName;
                    this.Response.Redirect(PageUtility.UrlSuffix + "Page/Hotel2/SearchMoreCityForm.aspx?CityName=" + this.txtName.Text);
                }
                else if (ilCityName.Count == 1)
                {
                    Terms.Common.Domain.City citylist = (Terms.Common.Domain.City)ilCityName[0];
                    ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Location = citylist.Code;
                    ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Country = citylist.CountryCode;
                }
                else if (ilCityName == null || ilCityName.Count == 0)
                {
                    Terms.Common.Domain.Airport airport = _airportService.Get(this.txtName.Text);
                    if (airport != null)
                    {
                        ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Location = airport.City.Code;
                        ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Country = airport.City.CountryCode;
                    }
                    else
                    {
                        this.Response.Redirect(PageUtility.UrlSuffix + "Page/Hotel2/SearchMoreCityForm.aspx?CityName=" + this.txtName.Text);
                    }
                }
            }

            this.Response.Redirect(PageUtility.UrlSuffix + "Page/Common/Searching1.aspx?target=~/Page/Hotel2/SearchResultForm" + "&ConditionID=" + this.Transaction.IntKey.ToString());
        }
        else
        {
            this.Response.Redirect(PageUtility.UrlSuffix + "Index.aspx");
        }
    }
    protected void btn_Search_AH_Click(object sender, EventArgs e)
    {
        if (Utility.IsSubAgent)
            OperaterAdvice.DoAdvice(Terms.Configuration.Utility.ConfigurationConst.OperateType.SUB_SearchPackage, this);
        else
            OperaterAdvice.DoAdvice(Terms.Configuration.Utility.ConfigurationConst.OperateType.MV_SearchPackage, this);

        if (!Page.IsValid)
            return;

        DateTime dateDept_A = Convert.ToDateTime(this.dateDeparture_AH.CDate);
        DateTime dateRtn_A = Convert.ToDateTime(this.dateReturn_AH.CDate);
        DateTime dateChinkIn_H;
        DateTime dateChinkOut_H;

        Session["CurrentSession"] = new SessionClass();
        SessionClass sc = (SessionClass)Session["CurrentSession"];

        if (txtFullFrom_AH.Text.Trim().Length == 0)
        {
            div_1.Visible = true;
            lblError1.Text = Resources.HintInfo.Package_Error_City1;
            return;
        }

        if (txtFullTo_AH.Text.Length == 0)
        {
            div_1.Visible = true;
            lblError1.Text += "<BR>" + Resources.HintInfo.Package_Error_City2;
            return;
        }

        txtFrom_AH.Text = ConvertName(txtFullFrom_AH.Text);
        txtTo_AH.Text = ConvertName(txtFullTo_AH.Text);

        //Utility.SelectAirGroup = null;
        PackageSearchCondition PacakgeSearch = new PackageSearchCondition();
        PacakgeSearch.IsReset = true;

        PacakgeSearch.DepatrueAirPorts = new List<Terms.Common.Domain.Airport>();
        if (txtFrom_AH.Text.Trim().Length > 3)
        {
            IList departureAirPorts = _CommonService.FindAirportByCityName(txtFrom_AH.Text.Trim());

            if (departureAirPorts.Count >= 1)
            {
                PacakgeSearch.DepatrueAirPorts = departureAirPorts;
                sc.FromAirports = departureAirPorts;
            }
            else
            {
                List<Terms.Common.Domain.Airport> airportList = _ApplicationCacheFoundationDate.FindAllAirport();
                Terms.Common.Domain.Airport airport = MatchAirport(txtFrom_AH.Text.Trim(), airportList);
                if (airport != null)
                {
                    PacakgeSearch.DepatrueAirPorts.Add(airport);
                }
            }
        }
        else
        {
            //PacakgeSearch.DepatrueAirPorts.Add(AirService.CommAirportDao.FindByAirport(txtDepartureFrom.Text.Trim()));
            Terms.Common.Domain.Airport airport = AirService.CommAirportDao.FindByAirport(txtFrom_AH.Text.Trim());

            if (airport != null)
            {
                PacakgeSearch.DepatrueAirPorts.Add(airport);
            }
            else
            {
                IList departureAirPorts = AirService.CommAirportDao.FindByCityCode(txtFrom_AH.Text.Trim());

                if (departureAirPorts.Count >= 1)
                {
                    PacakgeSearch.DepatrueAirPorts = departureAirPorts;
                }
            }
        }

        PacakgeSearch.DestinationAirPorts = new List<Terms.Common.Domain.Airport>();
        if (txtTo_AH.Text.Trim().Length > 3)
        {
            IList DestinationOneAirPorts = _CommonService.FindAirportByCityName(txtTo_AH.Text.Trim());

            if (DestinationOneAirPorts.Count >= 1)
            {
                PacakgeSearch.DestinationAirPorts = DestinationOneAirPorts;
                sc.ToAirports = DestinationOneAirPorts;
            }
            else
            {
                List<Terms.Common.Domain.Airport> airportList = _ApplicationCacheFoundationDate.FindAllAirport();
                Terms.Common.Domain.Airport airport = MatchAirport(txtTo_AH.Text.Trim(), airportList);
                if (airport != null)
                {
                    PacakgeSearch.DestinationAirPorts.Add(airport);
                }
            }
        }
        else
        {
            Terms.Common.Domain.Airport airport = AirService.CommAirportDao.FindByAirport(txtTo_AH.Text.Trim());

            if (airport != null)
            {
                PacakgeSearch.DestinationAirPorts.Add(airport);
            }
            else
            {
                IList DestinationOneAirPorts = AirService.CommAirportDao.FindByCityCode(txtTo_AH.Text.Trim());

                if (DestinationOneAirPorts.Count >= 1)
                {
                    PacakgeSearch.DestinationAirPorts = DestinationOneAirPorts;
                }
            }
        }

        PacakgeSearch.AirSearchCondition.SetPassengerNumber(TERMS.Common.PassengerType.Adult, TravelerChange1.TotalAdults);
        PacakgeSearch.AirSearchCondition.SetPassengerNumber(TERMS.Common.PassengerType.Child, TravelerChange1.TotalChilds);

        //�ж�����ij����غ�Ŀ�ĵ���û�л���
        if (PacakgeSearch.DepatrueAirPorts.Count == 0)
        {
            div_1.Visible = true;
            lblError1.Text += "<BR>" + Resources.HintInfo.Package_Error_City3;
            return;
        }

        if (PacakgeSearch.DestinationAirPorts.Count == 0)
        {
            div_1.Visible = true;
            lblError1.Text += "<BR>" + Resources.HintInfo.Package_Error_City4;
            return;
        }
        //���Ŀ�ĵصĹ����������ͼ��ô���ô�Ƶ����ס���ھ��dz������ڡ�
        if (this.CheckIn_AH.CDate == "__/__/____" || this.CheckIn_AH.CDate == "")
        {
            if (((Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[0]).City.CountryCode == "US" || ((Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[0]).City.CountryCode == "CA")
            {
                dateChinkIn_H = dateDept_A;
            }
            else
            {
                dateChinkIn_H = dateDept_A.AddDays(1); //��Check inΪ�գ���Ĭ��ΪAir�������ڼ�һ��
            }
        }
        else
            dateChinkIn_H = Convert.ToDateTime(this.CheckIn_AH.CDate);

        if (this.CheckOut_AH.CDate == "__/__/____" || this.CheckOut_AH.CDate == "")
            dateChinkOut_H = dateRtn_A;             //��Check outΪ�գ���Ĭ��ΪAir��������
        else
            dateChinkOut_H = Convert.ToDateTime(this.CheckOut_AH.CDate);

        if (!ckbHotel.Checked)
        {
            dateChinkIn_H = dateDept_A.AddDays(1);
            dateChinkOut_H = dateRtn_A;
        }

        if (dateDept_A < DateTime.Now.AddDays(7))
        {
            div_2.Visible = true;
            lblError2.Text = Resources.HintInfo.Package_Date_Error1;
            return;
        }

        if (dateRtn_A < DateTime.Now.AddDays(7))
        {
            div_2.Visible = true;
            lblError2.Text = Resources.HintInfo.Package_Date_Error2;
            return;
        }

        if (dateChinkIn_H < DateTime.Now.AddDays(7))
        {
            div_2.Visible = true;
            lblError2.Text = Resources.HintInfo.Package_Date_Error3;
            return;
        }

        if (dateChinkOut_H < DateTime.Now.AddDays(7))
        {
            div_2.Visible = true;
            lblError2.Text = Resources.HintInfo.Package_Date_Error4;
            return;
        }

        if (dateChinkIn_H <= DateTime.Today)
        {
            div_2.Visible = true;
            lblError2.Text = Resources.HintInfo.Package_Date_Error5;
            return;
        }

        if (dateChinkIn_H > dateChinkOut_H)
        {
            div_2.Visible = true;
            lblError2.Text = Resources.HintInfo.Package_Date_Error6;
            return;
        }

        if (dateDept_A >= dateRtn_A)
        {
            div_2.Visible = true;
            lblError2.Text = Resources.HintInfo.Package_Date_Error7;
            return;
        }

        if (dateDept_A > dateChinkIn_H)
        {
            div_2.Visible = true;
            lblError2.Text = Resources.HintInfo.Package_Date_Error8;
            return;
        }

        if (dateChinkOut_H > dateRtn_A)
        {
            div_2.Visible = true;
            lblError2.Text = Resources.HintInfo.Package_Date_Error9;
            return;
        }

        for (int i = 0; i < TravelerChange1.Rooms; i++)
        {
            RoomSearchCondition roomSearchCondition = new RoomSearchCondition();

            roomSearchCondition.Passengers.Add(TERMS.Common.PassengerType.Adult, TravelerChange1.Adults[i]);
            roomSearchCondition.Passengers.Add(TERMS.Common.PassengerType.Child, TravelerChange1.Childs[i]);

            PacakgeSearch.HotelSearchCondition.RoomSearchConditions.Add(roomSearchCondition);
        }

        if (PacakgeSearch.DestinationAirPorts.Count > 0 || PacakgeSearch.DepatrueAirPorts.Count > 0)
        {
            PacakgeSearch.HotelSearchCondition.CheckIn = dateChinkIn_H.AddDays(0);
            PacakgeSearch.HotelSearchCondition.CheckOut = dateChinkOut_H;
            PacakgeSearch.HotelSearchCondition.Location = ((Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[0]).CityCode;// "PVG";
            PacakgeSearch.HotelSearchCondition.LocationIndicator = TERMS.Common.LocationIndicator.City;
            PacakgeSearch.HotelSearchCondition.Country = ((Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[0]).City.Country.Code;

            AirTripCondition DPTairTripCondition = new AirTripCondition();
            DPTairTripCondition.Departure = (Airport)PacakgeSearch.DepatrueAirPorts[0];
            DPTairTripCondition.DepartureDate = Convert.ToDateTime(this.dateDeparture_AH.CDate);
            DPTairTripCondition.Destination = (Airport)PacakgeSearch.DestinationAirPorts[0];
            DPTairTripCondition.IsDepartureTimeSpecified = this.chbFlexible_AH.Checked;
            PacakgeSearch.AirSearchCondition.AddTripCondition(DPTairTripCondition);
            AirTripCondition RTNairTripCondition = new AirTripCondition();
            RTNairTripCondition.Departure = (Airport)PacakgeSearch.DestinationAirPorts[0];
            RTNairTripCondition.DepartureDate = Convert.ToDateTime(this.dateReturn_AH.CDate);
            RTNairTripCondition.Destination = (Airport)PacakgeSearch.DepatrueAirPorts[0];
            RTNairTripCondition.IsDepartureTimeSpecified = this.chbFlexible_AH.Checked;
            PacakgeSearch.AirSearchCondition.AddTripCondition(RTNairTripCondition);
            PacakgeSearch.AirSearchCondition.FlightType = "roundtrip";

            if (ddlAirline.SelectedValue != "all")
            {
                PacakgeSearch.AirSearchCondition.Airlines = new string[1] { ddlAirline.SelectedValue.Trim() };
            }
            else
            {
                PacakgeSearch.AirSearchCondition.Airlines = null;
            }

            Utility.IsTourMain = false;//�����Ƿ���Tour��־
            this.Transaction.IntKey = PacakgeSearch.GetHashCode();
            this.Transaction.CurrentSearchConditions = PacakgeSearch;
            this.Transaction.CurrentTransactionObject = new TERMS.Business.Centers.SalesCenter.TransactionObject();

            //����Cabin
            TERMS.Common.CabinType cabin = new TERMS.Common.CabinType();
            if (rdoLstCabin_AH.SelectedIndex == 0)
            {
                cabin = TERMS.Common.CabinType.Economy;
            }
            else if (rdoLstCabin_AH.SelectedIndex == 1)
            {
                cabin = TERMS.Common.CabinType.Business;
            }
            else if (rdoLstCabin_AH.SelectedIndex == 2)
            {
                cabin = TERMS.Common.CabinType.First;
            }

            for (int i = 0; i < PacakgeSearch.AirSearchCondition.AirTripCondition.Count; i++)
                PacakgeSearch.AirSearchCondition.AirTripCondition[i].Cabin = cabin;

            sc.CurrentItinerary.SearchInfo = PacakgeSearch.AirSearchCondition;

            ForbiddenAirportControl fAH = new ForbiddenAirportControl();

            bool IsErrorAirH = fAH.HasForbiddenAirport(sc);

            if (IsErrorAirH)
            {
                div_3.Visible = true;
                lblError3.Text = Resources.HintInfo.ForbiddenAirport; ;
            }

            if (PacakgeSearch.DestinationAirPorts.Count > 1 || PacakgeSearch.DepatrueAirPorts.Count > 1)
            {
                this.Page.Response.Redirect("~/Page/Package/PackageSearchMoreForm.aspx?ConditionID=" + this.Transaction.IntKey.ToString());
            }
            else
            {
                Utility.Transaction.Difference.Clear();
                Utility.Transaction.Difference.FromTime = DateTime.Now;
                Utility.Transaction.Difference.StarTime = DateTime.Now;
                Utility.Transaction.Difference.From = "PackageSearchMoreForm Redirect Start";
                this.Page.Response.Redirect("~/Page/Common/Searching1.aspx?target=~/Page/Package2/ViewYourPackages" + "&ConditionID=" + this.Transaction.IntKey.ToString());
            }
        }
        else
        {

        }
    }
    protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
    {
        if (!Utility.IsSearchConditionNull)
        {
            if (Utility.Transaction.CurrentSearchConditions is HotelSearchCondition)
            {
                HotelSearchCondition hotelSearchCondition = (HotelSearchCondition)Utility.Transaction.CurrentSearchConditions;

                hotelSearchCondition.RoomSearchConditions.Clear();

                for (int i = 0; i < Convert.ToInt32(dllRooms.SelectedValue); i++)
                {
                    RoomSearchCondition roomSearchCondition = new RoomSearchCondition();

                    roomSearchCondition.Passengers.Add(PassengerType.Adult, Convert.ToInt32(((DropDownList)this.FindControl(AdultName[i].ToString())).SelectedValue));
                    roomSearchCondition.Passengers.Add(PassengerType.Child, Convert.ToInt32(((DropDownList)this.FindControl(ChildName[i].ToString())).SelectedValue));

                    hotelSearchCondition.RoomSearchConditions.Add(roomSearchCondition);
                }

                Utility.Transaction.CurrentSearchConditions = hotelSearchCondition;
                Utility.Transaction.CurrentTransactionObject = new TERMS.Business.Centers.SalesCenter.TransactionObject();

                if (this.Request["Returnurl"] == null)
                {
                    this.Response.Redirect("~/Page/Common/Searching1.aspx?target=~/Page/Hotel/HotelSelectForm");
                }
                else
                {
                    this.Response.Redirect("~/Page/Common/Searching1.aspx?target=" + this.Request["returnurl"].Replace(".aspx", ""));
                }
            }
            else
            {
                HotelSearchCondition hotelSearchCondition = ((PackageSearchCondition)Utility.Transaction.CurrentSearchConditions).HotelSearchCondition;

                hotelSearchCondition.RoomSearchConditions.Clear();

                int iAdult = 0;
                int iChild = 0;

                for (int i = 0; i < Convert.ToInt32(dllRooms.SelectedValue); i++)
                {
                    RoomSearchCondition roomSearchCondition = new RoomSearchCondition();

                    roomSearchCondition.Passengers.Add(PassengerType.Adult, Convert.ToInt32(((DropDownList)this.FindControl(AdultName[i].ToString())).SelectedValue));
                    roomSearchCondition.Passengers.Add(PassengerType.Child, Convert.ToInt32(((DropDownList)this.FindControl(ChildName[i].ToString())).SelectedValue));
                    iAdult += Convert.ToInt32(((DropDownList)this.FindControl(AdultName[i].ToString())).SelectedValue);
                    iChild += Convert.ToInt32(((DropDownList)this.FindControl(ChildName[i].ToString())).SelectedValue);
                    hotelSearchCondition.RoomSearchConditions.Add(roomSearchCondition);
                }

                ((PackageSearchCondition)Utility.Transaction.CurrentSearchConditions).HotelSearchCondition = hotelSearchCondition;
                Utility.Transaction.CurrentTransactionObject = new TERMS.Business.Centers.SalesCenter.TransactionObject();

                AirSearchCondition airSearchCondition = ((PackageSearchCondition)Utility.Transaction.CurrentSearchConditions).AirSearchCondition;

                airSearchCondition.SetPassengerNumber(PassengerType.Adult, iAdult);
                airSearchCondition.SetPassengerNumber(PassengerType.Child, iChild);

                ((PackageSearchCondition)Utility.Transaction.CurrentSearchConditions).AirSearchCondition = airSearchCondition;
                ((PackageSearchCondition)Utility.Transaction.CurrentSearchConditions).HotelSearchCondition = hotelSearchCondition;

                if (this.Request["Returnurl"] == null)
                {
                    this.Response.Redirect("~/Page/Common/Searching1.aspx?target=~/Page/Package2/ViewYourPackages" + "&ConditionID=" + Utility.Transaction.IntKey.ToString());
                }
                else
                {
                    this.Response.Redirect("~/Page/Common/Searching1.aspx?target=~/Page/Package/" + this.Request["returnurl"].Replace(".aspx", "") + "&ConditionID=" + Utility.Transaction.IntKey.ToString());
                }
            }
        }
        else
        {
            this.Response.Redirect("~/Index.aspx");
        }
    }
Example #11
0
    private void SearchAllType()
    {
        if (Request["searchtype"] == null || Request["searchtype"].Trim().Length == 0)
        {
            return;
        }

        string searchtype = Request["searchtype"].Trim();

        switch (searchtype)
        {
            case "A":
                string depCity = ConvertName(Request["fromcity"].Trim());
                string toCity = ConvertName(Request["tocity"].Trim());
                string rtnFromCity = ConvertName(Request["rtnfromah"].Trim());
                string rtnToCity = ConvertName(Request["rtntoah"].Trim());

                //log begin 20090312 Leon
                log.Info("\r\n");
                System.Random rd = new Random();

                Session["LOG_RANDOM"] = rd.Next(999999999);

                if (!Utility.IsLogin)
                {
                    log.Info(Session["LOG_RANDOM"].ToString() + " >====================Not Login========================");
                }
                else
                {
                    log.Info(Session["LOG_RANDOM"].ToString() + " >==========================Login========================");
                }
                string logAirline = Request["aircode"].Trim().Trim().Equals(string.Empty) ? "All" : Request["aircode"].Trim();
                log.Info(Session["LOG_RANDOM"].ToString() + " >==========================AirLine:" + logAirline + "========================");
                log.Info(Session["LOG_RANDOM"].ToString() + " >SearchClick Begin Start time : " + System.DateTime.Now);
                //log end 20090312 Leon

                if (Utility.IsSubAgent)
                    OperaterAdvice.DoAdvice(Terms.Configuration.Utility.ConfigurationConst.OperateType.SUB_SearchAir, this);
                else
                    OperaterAdvice.DoAdvice(Terms.Configuration.Utility.ConfigurationConst.OperateType.MV_SearchAir, this);

                Session["HasReminder"] = true;

                //if (!Page.IsValid)
                //    return;
                bool IsSelectAirport = false;
                bool IsRealCity = true;

                Session["CurrentSession"] = new SessionClass();
                SessionClass sc = (SessionClass)Session["CurrentSession"];

                AirSearchCondition airSearchCondition = new AirSearchCondition();

                airSearchCondition.SetPassengerNumber(PassengerType.Adult, Convert.ToInt32(Convert.ToInt32(Request["adults"].Trim())));

                CabinType cabinA = new CabinType();
                if (Request["airclass"].Trim() == "ECONOMY")
                {
                    cabinA = CabinType.Economy;
                }
                else if (Request["airclass"].Trim() == "BUSINESS")
                {
                    cabinA = CabinType.Business;
                }
                else if (Request["airclass"].Trim() == "FIRST")
                {
                    cabinA = CabinType.First;
                }
                else
                {
                    cabinA = CabinType.All;
                }

                airSearchCondition.SetPassengerNumber(PassengerType.Child, Convert.ToInt32(Convert.ToInt32(Request["children"].Trim())));

                airSearchCondition.FlightType = Request["airtype"].Trim();

                airSearchCondition.FlexibleDays = 0;

                AirTripCondition deptCondition = new AirTripCondition();
                deptCondition.Cabin = cabinA;

                sc.FromCityName = depCity.Trim();
                if (depCity.Trim().Length > 3)
                {
                    IList departureAirPorts = _CommonService.FindAirportByCityName(depCity.Trim());

                    if (departureAirPorts.Count > 1)
                    {
                        IsSelectAirport = true;
                        sc.FromAirports = departureAirPorts;
                    }
                    else if (departureAirPorts.Count == 1)
                    {
                        deptCondition.Departure = (Terms.Common.Domain.Airport)departureAirPorts[0];
                    }
                    else
                    {

                        List<Terms.Common.Domain.Airport> airportList = _ApplicationCacheFoundationDate.FindAllAirport();
                        Terms.Common.Domain.Airport airport = MatchAirport(depCity.Trim(), airportList);
                        if (airport != null)
                            deptCondition.Departure = airport;
                        else
                            sc.IsRealFromCity = IsRealCity = false;
                        //Response.Redirect("ErrorMessage.aspx?ErrorMessage=We found no matches for \"" + this.txtDepCity.Value + "\"&GoToPage=~/index.aspx");
                    }

                }
                else
                {
                    deptCondition.Departure = AirService.CommAirportDao.FindByAirport(depCity.Trim());

                    if (deptCondition.Departure == null)
                    {
                        deptCondition.Departure = new Terms.Common.Domain.Airport();
                        deptCondition.Departure.Code = depCity.Trim();
                    }
                }

                deptCondition.DepartureDate = GlobalUtility.GetDateTime(Request["fromdate"].Trim());

                bool IsDataError = true;

                if (deptCondition.DepartureDate < DateTime.Now.AddDays(3))
                {
                    IsRealCity = false;
                    IsDataError = false;

                }

                sc.ToCityName = toCity.Trim();
                if (toCity.Trim().Length > 3)
                {
                    IList destinationAirPorts = _CommonService.FindAirportByCityName(toCity.Trim());

                    if (destinationAirPorts.Count > 1)
                    {
                        IsSelectAirport = true;
                        sc.ToAirports = destinationAirPorts;
                    }
                    else if (destinationAirPorts.Count == 1)
                    {
                        deptCondition.Destination = (Terms.Common.Domain.Airport)destinationAirPorts[0];
                    }
                    else
                    {
                        List<Terms.Common.Domain.Airport> airportList = _ApplicationCacheFoundationDate.FindAllAirport();
                        Terms.Common.Domain.Airport airport = MatchAirport(toCity.Trim(), airportList);
                        if (airport != null)
                            deptCondition.Destination = airport;
                        else
                            sc.IsRealToCity = IsRealCity = false;
                        // Response.Redirect("ErrorMessage.aspx?ErrorMessage=We found no matches for \"" + this.txtDesCity.Value + "\"&GoToPage=~/index.aspx");
                    }

                }
                else
                {
                    deptCondition.Destination = AirService.CommAirportDao.FindByAirport(toCity.Trim());

                    if (deptCondition.Destination == null)
                    {
                        deptCondition.Destination = new Terms.Common.Domain.Airport();
                        deptCondition.Destination.Code = toCity.Trim();
                    }
                }

                AirTripCondition rtnCondition = new AirTripCondition();
                rtnCondition.Cabin = cabinA;

                if (Request["airtype"].Trim().ToLower().Equals("oneway"))
                {
                    rtnCondition.Departure = deptCondition.Destination;
                    rtnCondition.Destination = deptCondition.Departure;
                    rtnCondition.DepartureDate = DateTime.MaxValue;
                }
                else if (Request["airtype"].Trim().ToLower().Equals("roundtrip"))
                {
                    rtnCondition.Departure = deptCondition.Destination;
                    rtnCondition.Destination = deptCondition.Departure;
                    rtnCondition.DepartureDate = GlobalUtility.GetDateTime(Request["todate"].Trim());
                }
                else if (Request["airtype"].Trim().ToLower().Equals("openjaw"))
                {
                    rtnCondition.DepartureDate = GlobalUtility.GetDateTime(Request["todate"].Trim());
                    sc.ReturnFromCityName = rtnFromCity.Trim();
                    if (rtnFromCity.Trim().Length > 3)
                    {
                        IList returnFromAirPorts = _CommonService.FindAirportByCityName(rtnFromCity.Trim());

                        if (returnFromAirPorts.Count > 1)
                        {
                            IsSelectAirport = true;
                            sc.ReturnFromAirports = returnFromAirPorts;
                        }
                        else if (returnFromAirPorts.Count == 1)
                        {
                            rtnCondition.Departure = (Terms.Common.Domain.Airport)returnFromAirPorts[0];
                        }
                        else
                        {
                            List<Terms.Common.Domain.Airport> airportList = _ApplicationCacheFoundationDate.FindAllAirport();
                            Terms.Common.Domain.Airport airport = MatchAirport(rtnFromCity.Trim(), airportList);
                            if (airport != null)
                                rtnCondition.Departure = airport;
                            else
                                sc.IsRealReturnFromCity = IsRealCity = false;
                            //Response.Redirect("ErrorMessage.aspx?ErrorMessage=We found no matches for \"" + this.txtRtnFrom.Value + "\"&GoToPage=~/index.aspx");
                        }
                    }
                    else
                    {
                        rtnCondition.Departure = AirService.CommAirportDao.FindByAirport(rtnFromCity.Trim());
                        if (rtnCondition.Departure == null)
                        {
                            rtnCondition.Departure = new Terms.Common.Domain.Airport();
                            rtnCondition.Departure.Code = rtnFromCity.Trim();
                        }
                    }
                    sc.ReturnToCityName = rtnToCity.Trim();
                    if (rtnToCity.Trim().Length > 3)
                    {
                        IList returnToAirPorts = _CommonService.FindAirportByCityName(rtnToCity.Trim());

                        if (returnToAirPorts.Count > 1)
                        {
                            IsSelectAirport = true;
                            sc.ReturnToAirports = returnToAirPorts;
                        }
                        else if (returnToAirPorts.Count == 1)
                        {
                            rtnCondition.Destination = (Terms.Common.Domain.Airport)returnToAirPorts[0];
                        }
                        else
                        {
                            List<Terms.Common.Domain.Airport> airportList = _ApplicationCacheFoundationDate.FindAllAirport();
                            Terms.Common.Domain.Airport airport = MatchAirport(rtnToCity.Trim(), airportList);
                            if (airport != null)
                                rtnCondition.Destination = airport;
                            else
                                sc.IsRealReturnToCity = IsRealCity = false;
                            //Response.Redirect("ErrorMessage.aspx?ErrorMessage=We found no matches for \"" + this.txtRtnTo.Value + "\"&GoToPage=~/index.aspx");
                        }

                    }
                    else
                    {
                        rtnCondition.Destination = AirService.CommAirportDao.FindByAirport(rtnToCity.Trim());
                        if (rtnCondition.Destination == null)
                        {
                            rtnCondition.Destination = new Terms.Common.Domain.Airport();
                            rtnCondition.Destination.Code = rtnToCity.Trim();
                        }
                    }
                }

                airSearchCondition.AddTripCondition(deptCondition);
                airSearchCondition.AddTripCondition(rtnCondition);

                //if (ddlAirline.SelectedItem.Text != "Search All Airlines")
                if (Request["aircode"].Trim().Trim() != "")
                {
                    //param.Airways = ddlAirline.SelectedValue.Split(',');
                    airSearchCondition.Airlines = Request["aircode"].Trim().Split(',');
                }

                sc.CurrentItinerary.SearchInfo = airSearchCondition;
                Utility.IsTourMain = false;//�����Ƿ���Tour��־
                this.Transaction.IntKey = airSearchCondition.GetHashCode();
                this.Transaction.CurrentSearchConditions = airSearchCondition;
                this.Transaction.CurrentTransactionObject = new TERMS.Business.Centers.SalesCenter.TransactionObject();

                ForbiddenAirportControl f = new ForbiddenAirportControl();

                bool IsErrorAir = f.HasForbiddenAirport(sc);

                if (IsErrorAir)
                {
                    Response.Redirect("~/Page/Flight/SearchConditionsMeaasageForm.aspx?ConditionID=" + Utility.Transaction.IntKey.ToString() + "&DateErrorMsg=" + Resources.HintInfo.ForbiddenAirport);
                }

                if (!IsRealCity)
                {
                    if (!Utility.IsLogin && Session["IndexForFlight"] == null)
                    {
                        if (IsDataError)
                        {
                            Response.Redirect("~/IndexForFlight.aspx?ConditionID=" + Utility.Transaction.IntKey.ToString() + "&IsRealCity=" + IsRealCity.ToString() + "&IsSelectAirport=" + IsSelectAirport.ToString());
                        }
                        else
                        {
                            Response.Redirect("~/IndexForFlight.aspx?ConditionID=" + Utility.Transaction.IntKey.ToString() + "&IsRealCity=" + IsRealCity.ToString() + "&IsSelectAirport=" + IsSelectAirport.ToString() + "&DateErrorMsg=" + Resources.HintInfo.AirDateError);
                        }
                    }

                    if (IsDataError)
                    {
                        Response.Redirect("~/Page/Flight/SearchConditionsMeaasageForm.aspx?ConditionID=" + Utility.Transaction.IntKey.ToString());
                    }
                    else
                    {
                        Response.Redirect("~/Page/Flight/SearchConditionsMeaasageForm.aspx?ConditionID=" + Utility.Transaction.IntKey.ToString() + "&DateErrorMsg=" + Resources.HintInfo.AirDateError);
                    }
                }
                else
                {
                    if (IsSelectAirport)
                    {
                        if (!Utility.IsLogin && Session["IndexForFlight"] == null)
                        {
                            if (IsDataError)
                            {
                                Response.Redirect("~/IndexForFlight.aspx?ConditionID=" + Utility.Transaction.IntKey.ToString() + "&IsRealCity=" + IsRealCity.ToString() + "&IsSelectAirport=" + IsSelectAirport.ToString());
                            }
                            else
                            {
                                Response.Redirect("~/IndexForFlight.aspx?ConditionID=" + Utility.Transaction.IntKey.ToString() + "&IsRealCity=" + IsRealCity.ToString() + "&IsSelectAirport=" + IsSelectAirport.ToString() + "&DateErrorMsg=" + Resources.HintInfo.AirDateError);
                            }
                        }

                        if (IsDataError)
                        {
                            Response.Redirect("~/Page/Flight/SearchConditionsForm.aspx?ConditionID=" + Utility.Transaction.IntKey.ToString());
                        }
                        else
                        {
                            Response.Redirect("~/Page/Flight/SearchConditionsForm.aspx?ConditionID=" + Utility.Transaction.IntKey.ToString() + "&DateErrorMsg=" + Resources.HintInfo.AirDateError);
                        }
                    }
                    else
                    {
                        if (!Utility.IsLogin && Session["IndexForFlight"] == null)
                        {
                            if (IsDataError)
                            {
                                Response.Redirect("~/IndexForFlight.aspx?ConditionID=" + Utility.Transaction.IntKey.ToString() + "&IsRealCity=" + IsRealCity.ToString() + "&IsSelectAirport=" + IsSelectAirport.ToString());
                            }
                            else
                            {
                                Response.Redirect("~/IndexForFlight.aspx?ConditionID=" + Utility.Transaction.IntKey.ToString() + "&IsRealCity=" + IsRealCity.ToString() + "&IsSelectAirport=" + IsSelectAirport.ToString() + "&DateErrorMsg=" + Resources.HintInfo.AirDateError);
                            }
                        }

                        log.Info(Session["LOG_RANDOM"].ToString() + " >Redirect Searching.aspx Begin Start time : " + System.DateTime.Now);

                        if (IsDataError)
                        {
                            Response.Redirect("~/Page/Flight/Searching.aspx?ConditionID=" + Utility.Transaction.IntKey.ToString());
                        }
                        else
                        {
                            Response.Redirect("~/Page/Flight/Searching.aspx?ConditionID=" + Utility.Transaction.IntKey.ToString() + "&DateErrorMsg=" + Resources.HintInfo.AirDateError);
                        }
                    }
                }

                break;
            case "AH":
                if (Utility.IsSubAgent)
                    OperaterAdvice.DoAdvice(Terms.Configuration.Utility.ConfigurationConst.OperateType.SUB_SearchPackage, this);
                else
                    OperaterAdvice.DoAdvice(Terms.Configuration.Utility.ConfigurationConst.OperateType.MV_SearchPackage, this);

                List<TourErrorMsg> errorsP = new List<TourErrorMsg>();

                DateTime dateDept_A = Convert.ToDateTime(Request["fromdate"].Trim());
                DateTime dateRtn_A = Convert.ToDateTime(Request["todate"].Trim());
                DateTime dateChinkIn_H;
                DateTime dateChinkOut_H;

                Session["CurrentSession"] = new SessionClass();
                SessionClass scAH = (SessionClass)Session["CurrentSession"];

                if (Request["fromcity"].Trim().Length == 0)
                {
                    TourErrorMsg error = new TourErrorMsg();
                    error.IsError = true;
                    error.ErrorMsg = Resources.HintInfo.Package_Error_City1;
                    errorsP.Add(error);
                }
                else
                {
                    TourErrorMsg error = new TourErrorMsg();
                    errorsP.Add(error);
                }

                if (Request["tocity"].Trim().Length == 0)
                {
                    TourErrorMsg error = new TourErrorMsg();
                    error.IsError = true;
                    error.ErrorMsg = Resources.HintInfo.Package_Error_City2;
                    errorsP.Add(error);
                }
                else
                {
                    TourErrorMsg error = new TourErrorMsg();
                    errorsP.Add(error);
                }

                string txtFrom_AH = ConvertName(Request["fromcity"].Trim());
                string txtTo_AH = ConvertName(Request["tocity"].Trim());

                //Utility.SelectAirGroup = null;
                PackageSearchCondition PacakgeSearch = new PackageSearchCondition();
                PacakgeSearch.IsReset = true;

                PacakgeSearch.DepatrueAirPorts = new List<Terms.Common.Domain.Airport>();
                scAH.FromCityName = txtFrom_AH.Trim();
                if (txtFrom_AH.Trim().Length > 3)
                {
                    IList departureAirPorts = _CommonService.FindAirportByCityName(txtFrom_AH.Trim());

                    if (departureAirPorts.Count >= 1)
                    {
                        PacakgeSearch.DepatrueAirPorts = departureAirPorts;
                        scAH.FromAirports = departureAirPorts;
                    }
                    else
                    {
                        List<Terms.Common.Domain.Airport> airportList = _ApplicationCacheFoundationDate.FindAllAirport();
                        Terms.Common.Domain.Airport airport = MatchAirport(txtFrom_AH.Trim(), airportList);
                        if (airport != null)
                        {
                            PacakgeSearch.DepatrueAirPorts.Add(airport);
                        }
                        else
                        {
                            scAH.IsRealFromCity = false;
                            TourErrorMsg error = new TourErrorMsg();
                            error.IsError = true;
                            error.ErrorMsg = Resources.HintInfo.Package_Error_City3;
                            errorsP.Add(error);
                        }
                    }
                }
                else
                {
                    Terms.Common.Domain.Airport airport = AirService.CommAirportDao.FindByAirport(txtFrom_AH.Trim());

                    if (airport != null)
                    {
                        PacakgeSearch.DepatrueAirPorts.Add(airport);
                    }
                    else
                    {
                        IList departureAirPorts = AirService.CommAirportDao.FindByCityCode(txtFrom_AH.Trim());

                        if (departureAirPorts.Count >= 1)
                        {
                            PacakgeSearch.DepatrueAirPorts = departureAirPorts;
                        }
                        else
                        {
                            scAH.IsRealFromCity = false;
                            TourErrorMsg error = new TourErrorMsg();
                            error.IsError = true;
                            error.ErrorMsg = Resources.HintInfo.Package_Error_City3;
                            errorsP.Add(error);
                        }
                    }
                }

                PacakgeSearch.DestinationAirPorts = new List<Terms.Common.Domain.Airport>();
                scAH.ToCityName = txtTo_AH.Trim();
                if (txtTo_AH.Trim().Length > 3)
                {
                    IList DestinationOneAirPorts = _CommonService.FindAirportByCityName(txtTo_AH.Trim());

                    if (DestinationOneAirPorts.Count >= 1)
                    {
                        PacakgeSearch.DestinationAirPorts = DestinationOneAirPorts;
                        scAH.ToAirports = DestinationOneAirPorts;
                    }
                    else
                    {
                        List<Terms.Common.Domain.Airport> airportList = _ApplicationCacheFoundationDate.FindAllAirport();
                        Terms.Common.Domain.Airport airport = MatchAirport(txtTo_AH.Trim(), airportList);
                        if (airport != null)
                        {
                            PacakgeSearch.DestinationAirPorts.Add(airport);
                        }
                        else
                        {
                            scAH.IsRealToCity = false;
                            TourErrorMsg error = new TourErrorMsg();
                            error.IsError = true;
                            error.ErrorMsg = Resources.HintInfo.Package_Error_City4;
                            errorsP.Add(error);
                        }
                    }
                }
                else
                {
                    Terms.Common.Domain.Airport airport = AirService.CommAirportDao.FindByAirport(txtTo_AH.Trim());

                    if (airport != null)
                    {
                        PacakgeSearch.DestinationAirPorts.Add(airport);
                    }
                    else
                    {
                        IList DestinationOneAirPorts = AirService.CommAirportDao.FindByCityCode(txtTo_AH.Trim());

                        if (DestinationOneAirPorts.Count >= 1)
                        {
                            PacakgeSearch.DestinationAirPorts = DestinationOneAirPorts;
                        }
                        else
                        {
                            scAH.IsRealToCity = false;
                            TourErrorMsg error = new TourErrorMsg();
                            error.IsError = true;
                            error.ErrorMsg = Resources.HintInfo.Package_Error_City4;
                            errorsP.Add(error);
                        }
                    }
                }

                //�ж�����ij����غ�Ŀ�ĵ���û�л���
                if (PacakgeSearch.DepatrueAirPorts.Count == 0)
                {
                    TourErrorMsg error = new TourErrorMsg();
                    error.IsError = true;
                    error.ErrorMsg = Resources.HintInfo.Package_Error_City3;
                    errorsP.Add(error);
                }
                else
                {
                    TourErrorMsg error = new TourErrorMsg();
                    errorsP.Add(error);
                }

                if (PacakgeSearch.DestinationAirPorts.Count == 0)
                {
                    TourErrorMsg error = new TourErrorMsg();
                    error.IsError = true;
                    error.ErrorMsg = Resources.HintInfo.Package_Error_City4;
                    errorsP.Add(error);
                }
                else
                {
                    TourErrorMsg error = new TourErrorMsg();
                    errorsP.Add(error);
                }

                //���Ŀ�ĵصĹ����������ͼ��ô���ô�Ƶ����ס���ھ��dz������ڡ�
                if (Request["checkin"].Trim() == "__/__/____" || Request["checkin"].Trim() == "")
                {
                    if (((Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[0]).City.CountryCode == "US" || ((Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[0]).City.CountryCode == "CA")
                    {
                        dateChinkIn_H = dateDept_A;  //��Check inΪ�գ���Ĭ��ΪAir�������ڼ�һ��
                    }
                    else
                    {
                        dateChinkIn_H = dateDept_A.AddDays(1);  //��Check inΪ�գ���Ĭ��ΪAir�������ڼ�һ��
                    }
                }
                else
                {
                    dateChinkIn_H = Convert.ToDateTime(Request["checkin"].Trim());
                }

                if (Request["checkout"].Trim() == "__/__/____" || Request["checkout"].Trim() == "")
                    dateChinkOut_H = dateRtn_A;             //��Check outΪ�գ���Ĭ��ΪAir��������
                else
                    dateChinkOut_H = Convert.ToDateTime(Request["checkout"].Trim());

                if (dateDept_A < DateTime.Now.AddDays(7))
                {
                    TourErrorMsg error = new TourErrorMsg();
                    error.IsError = true;
                    error.ErrorMsg = Resources.HintInfo.Package_Date_Error1;
                    errorsP.Add(error);
                }
                else if (dateRtn_A < DateTime.Now.AddDays(7))
                {
                    TourErrorMsg error = new TourErrorMsg();
                    error.IsError = true;
                    error.ErrorMsg = Resources.HintInfo.Package_Date_Error2;
                    errorsP.Add(error);
                }
                else if (dateChinkIn_H < DateTime.Now.AddDays(7))
                {
                    TourErrorMsg error = new TourErrorMsg();
                    error.IsError = true;
                    error.ErrorMsg = Resources.HintInfo.Package_Date_Error3;
                    errorsP.Add(error);
                }
                else if (dateChinkOut_H < DateTime.Now.AddDays(7))
                {
                    TourErrorMsg error = new TourErrorMsg();
                    error.IsError = true;
                    error.ErrorMsg = Resources.HintInfo.Package_Date_Error4;
                    errorsP.Add(error);
                }
                else if (dateChinkIn_H <= DateTime.Today)
                {
                    TourErrorMsg error = new TourErrorMsg();
                    error.IsError = true;
                    error.ErrorMsg = Resources.HintInfo.Package_Date_Error5;
                    errorsP.Add(error);
                }
                else if (dateChinkIn_H > dateChinkOut_H)
                {
                    TourErrorMsg error = new TourErrorMsg();
                    error.IsError = true;
                    error.ErrorMsg = Resources.HintInfo.Package_Date_Error6;
                    errorsP.Add(error);
                }
                else if (dateDept_A >= dateRtn_A)
                {
                    TourErrorMsg error = new TourErrorMsg();
                    error.IsError = true;
                    error.ErrorMsg = Resources.HintInfo.Package_Date_Error7;
                    errorsP.Add(error);
                }
                else if (dateDept_A > dateChinkIn_H)
                {
                    TourErrorMsg error = new TourErrorMsg();
                    error.IsError = true;
                    error.ErrorMsg = Resources.HintInfo.Package_Date_Error8;
                    errorsP.Add(error);
                }
                else if (dateChinkOut_H > dateRtn_A)
                {
                    TourErrorMsg error = new TourErrorMsg();
                    error.IsError = true;
                    error.ErrorMsg = Resources.HintInfo.Package_Date_Error9;
                    errorsP.Add(error);
                }
                else
                {
                    TourErrorMsg error = new TourErrorMsg();
                    errorsP.Add(error);
                }

                int adult = 0;
                int child = 0;

                for (int i = 0; i < Convert.ToInt32(Request["roomnumber"].Trim()); i++)
                {
                    adult += Convert.ToInt32(Request["a" + (i + 1)].Trim());
                    child += Convert.ToInt32(Request["c" + (i + 1)].Trim());

                    RoomSearchCondition roomSearchCondition = new RoomSearchCondition();

                    roomSearchCondition.Passengers.Add(TERMS.Common.PassengerType.Adult, Convert.ToInt32(Request["a" + (i + 1)].Trim()));
                    roomSearchCondition.Passengers.Add(TERMS.Common.PassengerType.Child, Convert.ToInt32(Request["c" + (i + 1)].Trim()));

                    PacakgeSearch.HotelSearchCondition.RoomSearchConditions.Add(roomSearchCondition);
                }

                PacakgeSearch.AirSearchCondition.SetPassengerNumber(TERMS.Common.PassengerType.Adult, adult);
                PacakgeSearch.AirSearchCondition.SetPassengerNumber(TERMS.Common.PassengerType.Child, child);

                if (PacakgeSearch.DestinationAirPorts.Count > 0 && PacakgeSearch.DepatrueAirPorts.Count > 0)
                {
                    PacakgeSearch.HotelSearchCondition.CheckIn = dateChinkIn_H.AddDays(0);
                    PacakgeSearch.HotelSearchCondition.CheckOut = dateChinkOut_H;
                    PacakgeSearch.HotelSearchCondition.Location = ((Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[0]).CityCode;// "PVG";
                    PacakgeSearch.HotelSearchCondition.LocationIndicator = TERMS.Common.LocationIndicator.City;
                    PacakgeSearch.HotelSearchCondition.Country = ((Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[0]).City.Country.Code;

                    AirTripCondition DPTairTripCondition = new AirTripCondition();
                    DPTairTripCondition.Departure = (Terms.Common.Domain.Airport)PacakgeSearch.DepatrueAirPorts[0];
                    DPTairTripCondition.DepartureDate = Convert.ToDateTime(dateDept_A);
                    DPTairTripCondition.Destination = (Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[0];
                    DPTairTripCondition.IsDepartureTimeSpecified = Convert.ToBoolean(Request["isadd"].Trim());
                    PacakgeSearch.AirSearchCondition.AddTripCondition(DPTairTripCondition);
                    AirTripCondition RTNairTripCondition = new AirTripCondition();
                    RTNairTripCondition.Departure = (Terms.Common.Domain.Airport)PacakgeSearch.DestinationAirPorts[0];
                    RTNairTripCondition.DepartureDate = Convert.ToDateTime(dateRtn_A);
                    RTNairTripCondition.Destination = (Terms.Common.Domain.Airport)PacakgeSearch.DepatrueAirPorts[0];
                    RTNairTripCondition.IsDepartureTimeSpecified = Convert.ToBoolean(Request["isadd"].Trim());
                    PacakgeSearch.AirSearchCondition.AddTripCondition(RTNairTripCondition);
                    PacakgeSearch.AirSearchCondition.FlightType = "roundtrip";

                    if (Request["aircode"].Trim() != "all")
                    {
                        PacakgeSearch.AirSearchCondition.Airlines = new string[1] { Request["aircode"].Trim() };
                    }
                    else
                    {
                        PacakgeSearch.AirSearchCondition.Airlines = null;
                    }

                    Utility.IsTourMain = false;//�����Ƿ���Tour��־
                    this.Transaction.IntKey = PacakgeSearch.GetHashCode();
                    this.Transaction.CurrentSearchConditions = PacakgeSearch;
                    this.Transaction.CurrentTransactionObject = new TERMS.Business.Centers.SalesCenter.TransactionObject();

                    //����Cabin
                    TERMS.Common.CabinType cabin = new TERMS.Common.CabinType();
                    if (Request["airclass"].Trim() == "ECONOMY")
                    {
                        cabin = TERMS.Common.CabinType.Economy;
                    }
                    else if (Request["airclass"].Trim() == "BUSINESS")
                    {
                        cabin = TERMS.Common.CabinType.Business;
                    }
                    else if (Request["airclass"].Trim() == "FIRST")
                    {
                        cabin = TERMS.Common.CabinType.First;
                    }

                    for (int i = 0; i < PacakgeSearch.AirSearchCondition.AirTripCondition.Count; i++)
                        PacakgeSearch.AirSearchCondition.AirTripCondition[i].Cabin = cabin;

                    if (PacakgeSearch.DestinationAirPorts.Count > 1 || PacakgeSearch.DepatrueAirPorts.Count > 1)
                    {
                        this.Page.Response.Redirect("~/Page/Package2/PackageMoreSearch.aspx?ConditionID=" + this.Transaction.IntKey.ToString());
                    }
                    else
                    {
                        Utility.Transaction.Difference.Clear();
                        Utility.Transaction.Difference.FromTime = DateTime.Now;
                        Utility.Transaction.Difference.StarTime = DateTime.Now;
                        Utility.Transaction.Difference.From = "PackageSearchMoreForm Redirect Start";
                        ConditionID = this.Transaction.IntKey.ToString();
                        Target = @"~/Page/Package2/ViewYourPackages";
                    }
                }
                else
                {
                    PacakgeSearch.HotelSearchCondition.CheckIn = dateChinkIn_H.AddDays(0);
                    PacakgeSearch.HotelSearchCondition.CheckOut = dateChinkOut_H;
                    PacakgeSearch.HotelSearchCondition.LocationIndicator = TERMS.Common.LocationIndicator.City;

                    AirTripCondition DPTairTripCondition = new AirTripCondition();
                    DPTairTripCondition.DepartureDate = Convert.ToDateTime(dateDept_A);
                    DPTairTripCondition.IsDepartureTimeSpecified = Convert.ToBoolean(Request["isadd"].Trim());
                    PacakgeSearch.AirSearchCondition.AddTripCondition(DPTairTripCondition);
                    AirTripCondition RTNairTripCondition = new AirTripCondition();
                    RTNairTripCondition.DepartureDate = Convert.ToDateTime(dateRtn_A);
                    RTNairTripCondition.IsDepartureTimeSpecified = Convert.ToBoolean(Request["isadd"].Trim());
                    PacakgeSearch.AirSearchCondition.AddTripCondition(RTNairTripCondition);
                    PacakgeSearch.AirSearchCondition.FlightType = "roundtrip";

                    if (Request["aircode"].Trim() != "all")
                    {
                        PacakgeSearch.AirSearchCondition.Airlines = new string[1] { Request["aircode"].Trim() };
                    }
                    else
                    {
                        PacakgeSearch.AirSearchCondition.Airlines = null;
                    }

                    Utility.IsTourMain = false;//�����Ƿ���Tour��־
                    this.Transaction.IntKey = PacakgeSearch.GetHashCode();
                    this.Transaction.CurrentSearchConditions = PacakgeSearch;
                    this.Transaction.CurrentTransactionObject = new TERMS.Business.Centers.SalesCenter.TransactionObject();

                    //����Cabin
                    TERMS.Common.CabinType cabin = new TERMS.Common.CabinType();
                    if (Request["aircode"].Trim() == "ECONOMY")
                    {
                        cabin = TERMS.Common.CabinType.Economy;
                    }
                    else if (Request["aircode"].Trim() == "BUSINESS")
                    {
                        cabin = TERMS.Common.CabinType.Business;
                    }
                    else if (Request["aircode"].Trim() == "FIRST")
                    {
                        cabin = TERMS.Common.CabinType.First;
                    }

                    for (int i = 0; i < PacakgeSearch.AirSearchCondition.AirTripCondition.Count; i++)
                        PacakgeSearch.AirSearchCondition.AirTripCondition[i].Cabin = cabin;

                    if (PacakgeSearch.DestinationAirPorts.Count > 1 || PacakgeSearch.DepatrueAirPorts.Count > 1)
                    {
                        this.Page.Response.Redirect("~/Page/Package2/PackageMoreSearch.aspx?ConditionID=" + this.Transaction.IntKey.ToString());
                    }
                    else
                    {
                        Utility.Transaction.Difference.Clear();
                        Utility.Transaction.Difference.FromTime = DateTime.Now;
                        Utility.Transaction.Difference.StarTime = DateTime.Now;
                        Utility.Transaction.Difference.From = "PackageSearchMoreForm Redirect Start";
                        ConditionID = this.Transaction.IntKey.ToString();
                        Target = @"~/Page/Package2/ViewYourPackages";
                    }
                }

                scAH.CurrentItinerary.SearchInfo = PacakgeSearch.AirSearchCondition;

                ForbiddenAirportControl fAH = new ForbiddenAirportControl();

                bool IsErrorAirH = fAH.HasForbiddenAirport(scAH);

                if (IsErrorAirH)
                {
                    TourErrorMsg error = new TourErrorMsg();
                    error.IsError = true;
                    error.ErrorMsg = Resources.HintInfo.ForbiddenAirport;
                    errorsP.Add(error);
                }
                else
                {
                    TourErrorMsg error = new TourErrorMsg();
                    errorsP.Add(error);
                }
                bool IsErrorP = false;
                for (int i = 0; i < errorsP.Count; i++)
                {
                    if (errorsP[i].IsError)
                    {
                        IsErrorP = true;
                    }
                }
                if (IsErrorP)
                {
                    Session["ErrorMsg"] = errorsP;
                    Response.Redirect("~/Page/Package2/SearchConditionsMeassageAHForm.aspx");
                }
                break;
            case "H":
                List<TourErrorMsg> errors = new List<TourErrorMsg>();

                if (Request["city"].Trim().Trim().Length == 0)
                {
                    TourErrorMsg error = new TourErrorMsg();
                    error.IsError = true;
                    error.ErrorMsg = Resources.HintInfo.Hotel_Error_City;
                    errors.Add(error);
                }
                else
                {
                    TourErrorMsg error = new TourErrorMsg();
                    errors.Add(error);
                }

                string txtName = ConvertName(Request["city"].Trim());

                DateTime dtNow = DateTime.Now;
                hotelSearchHotelByZyl.Info("MV_B2C Hotel Serach Start : " + dtNow.ToString("HH:mm:ss") + ":" + dtNow.Millisecond);

                if (Utility.IsSubAgent)
                    OperaterAdvice.DoAdvice(Terms.Configuration.Utility.ConfigurationConst.OperateType.SUB_SearchHotel, this);
                else
                    OperaterAdvice.DoAdvice(Terms.Configuration.Utility.ConfigurationConst.OperateType.MV_SearchHotel, this);

                try
                {
                    //log begin 20090312 Leon
                    log.Info("\r\n");

                    if (!Utility.IsLogin)
                    {
                        log.Info(PageUtility.HotelLogRandomNumber.ToString() + " >====================Not Login========================");
                    }
                    else
                    {
                        log.Info(PageUtility.HotelLogRandomNumber.ToString() + " >==========================Login========================");
                    }

                    log.Info(PageUtility.HotelLogRandomNumber.ToString() + " >SearchClick Begin Start time : " + System.DateTime.Now);
                    //log end 20090312 Leon
                }
                catch
                {

                }

                DateTime ChinkIn_H = Convert.ToDateTime(Request["checkin"].Trim());
                DateTime ChinkOut_H = Convert.ToDateTime(Request["checkout"].Trim());

                if (ChinkIn_H < DateTime.Now.AddDays(7))
                {
                    if (Utility.IsLogin && Utility.IsSubAgent)
                    {
                        if (ChinkIn_H < DateTime.Now.AddDays(3))
                        {
                            TourErrorMsg error = new TourErrorMsg();
                            error.IsError = true;
                            error.ErrorMsg = Resources.HintInfo.Hotel_Date_Error1;
                            errors.Add(error);
                        }
                    }
                    else
                    {
                        TourErrorMsg error = new TourErrorMsg();
                        error.IsError = true;
                        error.ErrorMsg = Resources.HintInfo.Hotel_Date_Error1;
                        errors.Add(error);
                    }
                }
                else if (ChinkOut_H < DateTime.Now.AddDays(7))
                {
                    if (Utility.IsLogin && Utility.IsSubAgent)
                    {
                        if (ChinkOut_H < DateTime.Now.AddDays(3))
                        {
                            TourErrorMsg error = new TourErrorMsg();
                            error.IsError = true;
                            error.ErrorMsg = Resources.HintInfo.Hotel_Date_Error2;
                            errors.Add(error);
                        }
                    }
                    else
                    {
                        TourErrorMsg error = new TourErrorMsg();
                        error.IsError = true;
                        error.ErrorMsg = Resources.HintInfo.Hotel_Date_Error2;
                        errors.Add(error);
                    }
                }
                else if (ChinkIn_H < DateTime.Today && ChinkOut_H < DateTime.Today)
                {
                    TourErrorMsg error = new TourErrorMsg();
                    error.IsError = true;
                    error.ErrorMsg = Resources.HintInfo.Hotel_Date_Error3;
                    errors.Add(error);
                }
                else if (ChinkIn_H <= DateTime.Today)
                {
                    TourErrorMsg error = new TourErrorMsg();
                    error.IsError = true;
                    error.ErrorMsg = Resources.HintInfo.Hotel_Date_Error4;
                    errors.Add(error);
                }
                else if (ChinkOut_H <= ChinkIn_H)
                {
                    TourErrorMsg error = new TourErrorMsg();
                    error.IsError = true;
                    error.ErrorMsg = Resources.HintInfo.Hotel_Date_Error5;
                    errors.Add(error);
                }
                else
                {
                    TourErrorMsg error = new TourErrorMsg();
                    errors.Add(error);
                }

                HotelSearchCondition hotelSearchCondition = new HotelSearchCondition();

                for (int i = 0; i < Convert.ToInt32(Request["roomnumber"].Trim()); i++)
                {
                    RoomSearchCondition roomSearchCondition = new RoomSearchCondition();

                    roomSearchCondition.Passengers.Add(PassengerType.Adult, Convert.ToInt32(Request["a" + (i + 1)].Trim()));
                    roomSearchCondition.Passengers.Add(PassengerType.Child, Convert.ToInt32(Request["c" + (i + 1)].Trim()));

                    hotelSearchCondition.RoomSearchConditions.Add(roomSearchCondition);
                }

                hotelSearchCondition.UserInputInfo = Request["city"].Trim();
                hotelSearchCondition.LocationIndicator = LocationIndicator.City;
                hotelSearchCondition.CheckIn = ChinkIn_H;
                hotelSearchCondition.CheckOut = ChinkOut_H;
                this.Transaction.IntKey = hotelSearchCondition.GetHashCode();
                this.Transaction.CurrentSearchConditions = hotelSearchCondition;
                this.Transaction.CurrentTransactionObject = new TERMS.Business.Centers.SalesCenter.TransactionObject();
                Utility.IsTourMain = false;//�����Ƿ���Tour��־
                ConditionID = this.Transaction.IntKey.ToString();
                Target = @"~/Page/Hotel2/SearchResultForm";

                bool IsError = false;
                for (int i = 0; i < errors.Count; i++)
                {
                    if (errors[i].IsError)
                    {
                        IsError = true;
                    }
                }

                if (IsError)
                {
                    Session["ErrorMsg"] = errors;
                    Response.Redirect("~/Page/Hotel2/SearchConditionsMeassageHForm.aspx");
                }

                if (txtName.Trim().Length == 3)
                {
                    Terms.Common.Domain.City CityName = _cityService.Get(txtName);

                    if (CityName != null)
                    {
                        ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Location = CityName.Code;
                        ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Country = CityName.CountryCode;
                    }
                    else
                    {
                        Terms.Common.Domain.Airport airport = _airportService.Get(txtName);
                        if (airport != null)
                        {
                            ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Location = airport.City.Code;
                            ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Country = airport.City.CountryCode;
                        }
                        else
                        {
                            IList ilCityName = _cityService.FindSomeCityByName(txtName);
                            if (ilCityName.Count > 1)
                            {
                                Session["CityNameList"] = ilCityName;
                                this.Response.Redirect(SaleWebSuffix + "Page/Hotel2/SearchMoreCityForm.aspx?CityName=" + txtName);
                            }
                            else if (ilCityName.Count == 1)
                            {
                                Terms.Common.Domain.City citylist = (Terms.Common.Domain.City)ilCityName[0];
                                ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Location = citylist.Code;
                                ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Country = citylist.CountryCode;
                            }
                            else if (ilCityName == null || ilCityName.Count == 0)
                            {
                                Session["CityNameList"] = null;
                                this.Response.Redirect(SaleWebSuffix + "Page/Hotel2/SearchMoreCityForm.aspx?CityName=" + txtName);
                            }
                        }
                    }

                }
                else
                {
                    //�ж��Ƿ��ж��.�������ͬ��SerachMoreҳ�����ѡ��,���û�����������ҳ��
                    IList ilCityName = _cityService.FindSomeCityByName(txtName);

                    if (ilCityName.Count > 1)
                    {
                        Session["CityNameList"] = ilCityName;
                        this.Response.Redirect(SaleWebSuffix + "Page/Hotel2/SearchMoreCityForm.aspx?CityName=" + txtName);
                    }
                    else if (ilCityName.Count == 1)
                    {
                        Terms.Common.Domain.City citylist = (Terms.Common.Domain.City)ilCityName[0];
                        ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Location = citylist.Code;
                        ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Country = citylist.CountryCode;
                    }
                    else if (ilCityName == null || ilCityName.Count == 0)
                    {
                        Terms.Common.Domain.Airport airport = _airportService.Get(txtName);
                        if (airport != null)
                        {
                            ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Location = airport.City.Code;
                            ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Country = airport.City.CountryCode;
                        }
                        else
                        {
                            this.Response.Redirect(SaleWebSuffix + "Page/Hotel2/SearchMoreCityForm.aspx?CityName=" + txtName);
                        }
                    }
                }

                log.Info(PageUtility.HotelLogRandomNumber.ToString() + " >Redirect Searching1.aspx Begin Start time : " + System.DateTime.Now);

                hotelSearchHotelByZyl.Debug("Hotel Start :" + DateTime.Now.ToLongTimeString());

                dtNow = DateTime.Now;
                hotelSearchHotelByZyl.Info("MV_B2C Hotel Serach To Searching1 Start : " + dtNow.ToString("HH:mm:ss") + ":" + dtNow.Millisecond);
                break;
            case "T":
                if (Utility.IsSubAgent)
                    OperaterAdvice.DoAdvice(Terms.Configuration.Utility.ConfigurationConst.OperateType.SUB_SearchTour, this);
                else
                    OperaterAdvice.DoAdvice(Terms.Configuration.Utility.ConfigurationConst.OperateType.MV_SearchTour, this);

                List<TourErrorMsg> errorsT = new List<TourErrorMsg>();

                //log begin 20090312 Leon
                PageUtility.TourSearchingTimeLog.Info("\r\n");

                if (!Utility.IsLogin)
                    PageUtility.TourSearchingTimeLog.Info(PageUtility.TourLogRandomNumber.ToString() + " >====================Not Login========================");
                else
                    PageUtility.TourSearchingTimeLog.Info(PageUtility.TourLogRandomNumber.ToString() + " >==========================Login========================");

                PageUtility.TourSearchingTimeLog.Info(PageUtility.TourLogRandomNumber.ToString() + " >Tour Searching(1) Begin at: " + System.DateTime.Now);

                //log end 20090312 Leon

                TourSearchCondition tourSearchCondition = new TourSearchCondition();
                tourSearchCondition.Region = Request["region"].Trim();
                if (tourSearchCondition.Region.Trim() == "Please select a area")
                {
                    TourErrorMsg error = new TourErrorMsg();
                    error.IsError = true;
                    error.ErrorMsg = Resources.HintInfo.Tour_Error1;
                    errorsT.Add(error);
                }
                else
                {
                    TourErrorMsg error = new TourErrorMsg();
                    errorsT.Add(error);
                }
                string country = Request["counrty"].Trim();
                int index = country.IndexOf("-");
                if (index < 0)
                {
                    TourErrorMsg error = new TourErrorMsg();
                    error.IsError = true;
                    error.ErrorMsg = Resources.HintInfo.Tour_Error2;
                    errorsT.Add(error);
                }
                else
                {
                    TourErrorMsg error = new TourErrorMsg();
                    errorsT.Add(error);
                }
                tourSearchCondition.Counrty = country.Substring(index + 1).Trim();
                string city = Request["city"].Trim();
                index = city.IndexOf("-");
                if (index < 0)
                {
                    TourErrorMsg error = new TourErrorMsg();
                    error.IsError = true;
                    error.ErrorMsg = Resources.HintInfo.Tour_Error3;
                    errorsT.Add(error);
                }
                else
                {
                    TourErrorMsg error = new TourErrorMsg();
                    errorsT.Add(error);
                }
                tourSearchCondition.City = city.Substring(index + 1).Trim();
                tourSearchCondition.IsLandOnly = Convert.ToBoolean(Request["landonly"].Trim());
                tourSearchCondition.TravelBeginDate = GlobalUtility.GetDateTime(Request["tourdate"].Trim());
                if (Request["tourdate"].Trim() == "__/__/____" || Request["tourdate"].Trim() == "")
                {
                    TourErrorMsg error = new TourErrorMsg();
                    error.IsError = true;
                    error.ErrorMsg = Resources.HintInfo.Tour_Error4;
                    errorsT.Add(error);
                }
                else
                {
                    TourErrorMsg error = new TourErrorMsg();
                    errorsT.Add(error);
                }

                if (tourSearchCondition.TravelBeginDate < DateTime.Now.AddDays(3))
                {
                    TourErrorMsg error = new TourErrorMsg();
                    error.IsError = true;
                    error.ErrorMsg = Resources.HintInfo.Tour_Error5;
                    errorsT.Add(error);
                }
                else
                {
                    TourErrorMsg error = new TourErrorMsg();
                    errorsT.Add(error);
                }
                switch (Request["traveldate"].Trim())
                {
                    case "5": tourSearchCondition.TravelDaysFrom = 1;
                        tourSearchCondition.TravelDaysTo = 10;
                        break;
                    case "11": tourSearchCondition.TravelDaysFrom = 11;
                        tourSearchCondition.TravelDaysTo = 15;
                        break;
                    case "15": tourSearchCondition.TravelDaysFrom = 16;
                        tourSearchCondition.TravelDaysTo = 800;
                        break;
                    default:
                        tourSearchCondition.TravelDaysFrom = 1;
                        tourSearchCondition.TravelDaysTo = 800;
                        break;
                }

                this.Transaction.IntKey = tourSearchCondition.GetHashCode();
                this.Transaction.CurrentSearchConditions = tourSearchCondition;
                this.Transaction.CurrentTransactionObject = new TERMS.Business.Centers.SalesCenter.TransactionObject();
                Utility.IsTourMain = false;//�����Ƿ���Tour��־
                Utility.IsTourMore = false;//�����Ƿ���Tour More
                ConditionID = this.Transaction.IntKey.ToString();
                Target = @"~/Page/Tour/TourMoreSearchResultForm";
                bool IsErrorT = false;
                for (int i = 0; i < errorsT.Count; i++)
                {
                    if (errorsT[i].IsError)
                    {
                        IsErrorT = true;
                    }
                }

                if (IsErrorT)
                {
                    Session["ErrorMsg"] = errorsT;
                    Response.Redirect("~/Page/Tour/SearchConditionsMeassageTForm.aspx");
                }
                break;
            case "P":
                SearchPromos();

                break;

            case "C":
                string fromcity = ConvertName(Request["fromcity"].Trim());
                string tocity = ConvertName(Request["tocity"].Trim());
                string checkindate = ConvertName(Request["checkindate"].Trim());
                string checkoutdate = ConvertName(Request["checkoutdate"].Trim());

                string CheckInTimeCode = Request["checkintime"].Trim();
                string CheckOutTimeCode = Request["checkouttime"].Trim();

                string checkintime = CheckInTimeCode.Substring(0, 4);
                string checkouttime = CheckOutTimeCode.Substring(0, 4);

                string checkintimeX = CheckInTimeCode.Substring(4);
                string checkouttimeX = CheckOutTimeCode.Substring(4);

                string cartype = ConvertName(Request["cartype"].Trim());
                string carcodetype = ConvertName(Request["carcodetype"].Trim());

                DateTime fromDate = DateTime.MinValue;
                DateTime toDate = DateTime.MinValue;

                if (checkintimeX == "A")
                {
                    fromDate = Convert.ToDateTime(checkindate).AddHours(Convert.ToDouble(checkintime.Substring(0, 2))).AddMinutes(Convert.ToDouble(checkintime.Substring(2)));
                }
                else
                {
                    if (checkintime == "1200")
                    {
                        fromDate = Convert.ToDateTime(checkindate);
                    }
                    else
                    {
                        fromDate = Convert.ToDateTime(checkindate).AddHours(Convert.ToDouble(checkintime.Substring(0, 2)) + Convert.ToDouble("12")).AddMinutes(Convert.ToDouble(checkintime.Substring(2)));
                    }
                }
                if (checkouttimeX == "A")
                {
                    toDate = Convert.ToDateTime(checkoutdate).AddHours(Convert.ToDouble(checkouttime.Substring(0, 2))).AddMinutes(Convert.ToDouble(checkouttime.Substring(2)));
                }
                else
                {
                    if (checkouttime == "1200")
                    {
                        toDate = Convert.ToDateTime(checkoutdate);
                    }
                    else
                    {
                        toDate = Convert.ToDateTime(checkoutdate).AddHours(Convert.ToDouble(checkouttime.Substring(0, 2)) + Convert.ToDouble("12")).AddMinutes(Convert.ToDouble(checkouttime.Substring(2)));
                    }
                }

                string UserInputInfoFrom = Request["fromcity"].Trim();

                string UserInputInfoTo = Request["tocity"].Trim();

                if (carcodetype.Trim().ToUpper() == "D")
                {
                }
                else
                {
                    UserInputInfoTo = Request["fromcity"].Trim();
                    tocity = fromcity;
                }

                string PickupAirportCode = string.Empty;
                string PickupISOCountryCode = string.Empty;

                string DropoffAirportCode = string.Empty;
                string DropoffISOCountryCode = string.Empty;

                if (fromcity.Trim().Length == 3)
                {
                    Terms.Common.Domain.Airport airport = _airportService.Get(fromcity);
                    if (airport != null)
                    {
                        PickupAirportCode = airport.Code;
                        PickupISOCountryCode = airport.City.CountryCode;
                    }
                    else
                    {
                        IList ilCityName = _cityService.FindSomeCityByName(fromcity);

                        if (ilCityName.Count > 1)
                        {

                        }
                        else if (ilCityName.Count == 1)
                        {
                            Terms.Common.Domain.City citylist = (Terms.Common.Domain.City)ilCityName[0];

                            PickupAirportCode = citylist.Code;
                            PickupISOCountryCode = citylist.CountryCode;
                        }
                    }
                }
                else
                {
                    //�ж��Ƿ��ж��.�������ͬ��SerachMoreҳ�����ѡ��,���û�����������ҳ��
                    IList DestinationOneAirPorts = _CommonService.FindAirportByCityName(fromcity);

                    if (DestinationOneAirPorts.Count >= 1)
                    {
                        PickupAirportCode = ((Airport)DestinationOneAirPorts[0]).Code;
                        PickupISOCountryCode = ((Airport)DestinationOneAirPorts[0]).City.CountryCode ;
                    }
                    else
                    {
                        List<Terms.Common.Domain.Airport> airportList = _ApplicationCacheFoundationDate.FindAllAirport();
                        Terms.Common.Domain.Airport airport = MatchAirport(fromcity, airportList);
                        if (airport != null)
                        {
                            PickupAirportCode = airport.Code;
                            PickupISOCountryCode = airport.City.CountryCode;
                        }
                    }
                }

                if (tocity.Trim().Length == 3)
                {
                    Terms.Common.Domain.Airport airport = _airportService.Get(tocity);
                    if (airport != null)
                    {
                        DropoffAirportCode = airport.Code;
                        DropoffISOCountryCode = airport.City.CountryCode;
                    }
                    else
                    {
                        IList ilCityName = _cityService.FindSomeCityByName(tocity);

                        if (ilCityName.Count > 1)
                        {

                        }
                        else if (ilCityName.Count == 1)
                        {
                            Terms.Common.Domain.City citylist = (Terms.Common.Domain.City)ilCityName[0];
                            DropoffAirportCode = citylist.Code;
                            DropoffISOCountryCode = citylist.CountryCode;
                        }
                    }
                }
                else
                {
                    //�ж��Ƿ��ж��.�������ͬ��SerachMoreҳ�����ѡ��,���û�����������ҳ��
                    IList DestinationOneAirPorts = _CommonService.FindAirportByCityName(tocity);

                    if (DestinationOneAirPorts.Count >= 1)
                    {
                        DropoffAirportCode = ((Airport)DestinationOneAirPorts[0]).Code;
                        DropoffISOCountryCode = ((Airport)DestinationOneAirPorts[0]).City.CountryCode;
                    }
                    else
                    {
                        List<Terms.Common.Domain.Airport> airportList = _ApplicationCacheFoundationDate.FindAllAirport();
                        Terms.Common.Domain.Airport airport = MatchAirport(tocity, airportList);
                        if (airport != null)
                        {
                            DropoffAirportCode = airport.Code;
                            DropoffISOCountryCode = airport.City.CountryCode;
                        }
                    }
                }

                TERMS.Common.Search.VehcileSearchCondition sear = null;

                if (carcodetype.Trim().ToUpper() != "D")
                {
                    sear = new TERMS.Common.Search.VehcileSearchCondition(PickupISOCountryCode, PickupAirportCode, UserInputInfoFrom, fromDate, toDate);
                }
                else
                {
                    sear = new TERMS.Common.Search.VehcileSearchCondition(PickupISOCountryCode, PickupAirportCode, UserInputInfoFrom, fromDate, DropoffISOCountryCode, DropoffAirportCode, UserInputInfoTo, toDate);
                }

                sear.Category = cartype;

                Terms.Sales.Business.VehcileSearchCondition vehcilesearchcondition = new Terms.Sales.Business.VehcileSearchCondition(sear);

                this.Transaction.IntKey = vehcilesearchcondition.GetHashCode();
                this.Transaction.CurrentSearchConditions = vehcilesearchcondition;
                this.Transaction.CurrentTransactionObject = new TERMS.Business.Centers.SalesCenter.TransactionObject();
                Utility.IsTourMain = false;//�����Ƿ���Tour��־
                ConditionID = this.Transaction.IntKey.ToString();
                Target = @"~/Page/Vehcile/SearchConditionsMeassageCForm";
                break;
        }
    }
    protected void btnSearch_Click(object sender, EventArgs e)
    {
        DateTime dateChinkIn_H;
        DateTime dateChinkOut_H;

        try
        {
            dateChinkIn_H = Convert.ToDateTime(this.txtCheckin_h.CDate);
            dateChinkOut_H = Convert.ToDateTime(this.txtCheckout_h.CDate);
        }
        catch
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=The wrong date format&&GoToPage=~/Index.aspx");
            return;
        }
        if (dateChinkIn_H < DateTime.Today && dateChinkOut_H < DateTime.Today)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=We can only accept dates that occur between " + DateTime.Today.AddDays(1).ToString("MM/dd/yyyy") + " and 12/27/2008. Please enter a new date.&&GoToPage=~/Index.aspx");
            return;
        }

        if (dateChinkIn_H <= DateTime.Today)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=The check-in date must occur after the today date. Please change the date.&&GoToPage=~/Index.aspx");
            return;
        }

        if (dateChinkIn_H > dateChinkOut_H)
        {
            this.Response.Redirect("~/Page/Common/ErrorMessage.aspx?ErrorMessage=The check-out date must occur after the check-in date. Please change the date.&&GoToPage=~/Index.aspx");
            return;
        }

        HotelSearchCondition hotelSearchCondition = new HotelSearchCondition();

        for (int i = 0; i < TravelerChange1.Rooms; i++)
        {
            RoomSearchCondition roomSearchCondition = new RoomSearchCondition();

            roomSearchCondition.Passengers.Add(PassengerType.Adult, TravelerChange1.Adults[i]);
            roomSearchCondition.Passengers.Add(PassengerType.Child, TravelerChange1.Childs[i]);

            hotelSearchCondition.RoomSearchConditions.Add(roomSearchCondition);
        }
        //hotelSearchCondition.Country = this.ddlCountry_h.SelectedValue;
        //hotelSearchCondition.Location = this.ddlCity_h.SelectedValue;
        hotelSearchCondition.LocationIndicator = LocationIndicator.City;
        hotelSearchCondition.CheckIn = Convert.ToDateTime(this.txtCheckin_h.CDate);
        hotelSearchCondition.CheckOut = Convert.ToDateTime(this.txtCheckout_h.CDate);
        this.Transaction.IntKey = hotelSearchCondition.GetHashCode();
        this.Transaction.CurrentSearchConditions = hotelSearchCondition;
        this.Transaction.CurrentTransactionObject = new TERMS.Business.Centers.SalesCenter.TransactionObject();

        if (this.txtName.Text.Trim().Length == 3)
        {
            Terms.Common.Domain.City CityName = _cityService.Get(this.txtName.Text);

            if (CityName != null)
            {
                ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Location = CityName.Code;
                ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Country = CityName.CountryCode;
                //Session["CityNameList"] = ilCityName;
                //this.Response.Redirect("~/Page/Common/SearchMoreForm.aspx?CityName=" + this.txtCityName.Text);
            }
            else
            {
                Terms.Common.Domain.Airport airport = _airportService.Get(this.txtName.Text);
                if (airport != null)
                {
                    ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Location = airport.City.Code;
                    ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Country = airport.City.CountryCode;
                }
                else
                {
                    IList ilCityName = _cityService.FindSomeCityByName(this.txtName.Text);
                    if (ilCityName.Count > 1)
                    {
                        Session["CityNameList"] = ilCityName;
                        this.Response.Redirect(SaleWebSuffix + "Page/Hotel2/SearchMoreCityForm.aspx?CityName=" + this.txtName.Text);
                    }
                    else if (ilCityName.Count == 1)
                    {
                        Terms.Common.Domain.City citylist = (Terms.Common.Domain.City)ilCityName[0];
                        ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Location = citylist.Code;
                        ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Country = citylist.CountryCode;
                    }
                    else if (ilCityName == null || ilCityName.Count == 0)
                    {
                        Session["CityNameList"] = null;
                        this.Response.Redirect(SaleWebSuffix + "Page/Hotel2/SearchMoreCityForm.aspx?CityName=" + this.txtName.Text);
                    }
                }
            }

        }
        else
        {
            //判断是否有多个.如果有相同则到SerachMore页面进行选择,如果没有则进入搜索页面
            IList ilCityName = _cityService.FindSomeCityByName(this.txtName.Text);

            if (ilCityName.Count > 1)
            {
                Session["CityNameList"] = ilCityName;
                this.Response.Redirect(SaleWebSuffix + "Page/Hotel2/SearchMoreCityForm.aspx?CityName=" + this.txtName.Text);
            }
            else if (ilCityName.Count == 1)
            {
                Terms.Common.Domain.City citylist = (Terms.Common.Domain.City)ilCityName[0];
                ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Location = citylist.Code;
                ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Country = citylist.CountryCode;
            }
            else if (ilCityName == null || ilCityName.Count == 0)
            {
                Terms.Common.Domain.Airport airport = _airportService.Get(this.txtName.Text);
                if (airport != null)
                {
                    ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Location = airport.City.Code;
                    ((HotelSearchCondition)this.Transaction.CurrentSearchConditions).Country = airport.City.CountryCode;
                }
                else
                {
                    this.Response.Redirect(SaleWebSuffix + "Page/Hotel2/SearchMoreCityForm.aspx?CityName=" + this.txtName.Text);
                }
            }
        }

        this.Response.Redirect("~/Page/Common/Searching1.aspx?target=~/Page/Hotel2/SearchResultForm" + "&ConditionID=" + this.Transaction.IntKey.ToString());
    }
Example #13
0
    private void CreateCondition()
    {
        if (Utility.Transaction.CurrentTransactionObject != null)
        {
            Utility.Transaction.CurrentTransactionObject = null;
        }
        if (this.Transaction.CurrentSearchConditions != null)
        {
            this.Transaction.CurrentSearchConditions = null;
        }
        if (Session["CurrentSession"] != null)
        {
            Session["CurrentSession"] = null;
        }

        string FromCity = "";
        string ToCity = this.Request["ToCity"];
        PackageSearchCondition PacakgeSearch = new PackageSearchCondition();
        PacakgeSearch.IsReset = true;
        IList departureAirPorts = _CommonService.FindAirportByCityName(FromCity);
        PacakgeSearch.DepatrueAirPorts = departureAirPorts;

        Terms.Common.Domain.Airport airport = AirService.CommAirportDao.FindByAirport(ToCity);

        if (airport != null)
        {
            PacakgeSearch.DestinationAirPorts = new List<Terms.Common.Domain.Airport>();
            PacakgeSearch.DestinationAirPorts.Add(airport);
        }
        else
        {

        }
        PacakgeSearch.AirSearchCondition.SetPassengerNumber(TERMS.Common.PassengerType.Adult, Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["Adults"]));
        PacakgeSearch.AirSearchCondition.SetPassengerNumber(TERMS.Common.PassengerType.Child, Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["Childs"]));

        RoomSearchCondition roomSearchCondition = new RoomSearchCondition();

        roomSearchCondition.Passengers.Add(TERMS.Common.PassengerType.Adult, Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["Adults"]));
        roomSearchCondition.Passengers.Add(TERMS.Common.PassengerType.Child, Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["Childs"]));

        PacakgeSearch.HotelSearchCondition.RoomSearchConditions.Add(roomSearchCondition);

        if (PacakgeSearch.DestinationAirPorts != null && PacakgeSearch.DestinationAirPorts.Count > 0 || PacakgeSearch.DepatrueAirPorts.Count > 0)
        {
            PacakgeSearch.HotelSearchCondition.CheckIn = Convert.ToDateTime(DateTime.Now.AddDays(14).ToString("MM/dd/yyyy", DateTimeFormatInfo.InvariantInfo)).AddDays(1);
            PacakgeSearch.HotelSearchCondition.CheckOut = Convert.ToDateTime(DateTime.Now.AddDays(21).ToString("MM/dd/yyyy", DateTimeFormatInfo.InvariantInfo));
            PacakgeSearch.HotelSearchCondition.Location = ((Airport)PacakgeSearch.DestinationAirPorts[0]).CityCode; // "PVG";
            PacakgeSearch.HotelSearchCondition.LocationIndicator = TERMS.Common.LocationIndicator.City;
            PacakgeSearch.HotelSearchCondition.Country = ((Airport)PacakgeSearch.DestinationAirPorts[0]).City.CountryCode;

            AirTripCondition DPTairTripCondition = new AirTripCondition();
            DPTairTripCondition.Departure = new Airport();
            DPTairTripCondition.DepartureDate = Convert.ToDateTime(DateTime.Now.AddDays(14).ToString("MM/dd/yyyy", DateTimeFormatInfo.InvariantInfo));
            DPTairTripCondition.Destination = (Airport)PacakgeSearch.DestinationAirPorts[0];
            DPTairTripCondition.IsDepartureTimeSpecified = false;
            PacakgeSearch.AirSearchCondition.AddTripCondition(DPTairTripCondition);
            PacakgeSearch.AirSearchCondition.Airlines = null;
            AirTripCondition RTNairTripCondition = new AirTripCondition();
            RTNairTripCondition.Departure = (Airport)PacakgeSearch.DestinationAirPorts[0];
            RTNairTripCondition.DepartureDate = Convert.ToDateTime(DateTime.Now.AddDays(21).ToString("MM/dd/yyyy", DateTimeFormatInfo.InvariantInfo));
            RTNairTripCondition.Destination = new Airport();
            RTNairTripCondition.IsDepartureTimeSpecified = false;
            PacakgeSearch.AirSearchCondition.AddTripCondition(RTNairTripCondition);
            PacakgeSearch.AirSearchCondition.FlightType = "roundtrip";
            this.Transaction.CurrentSearchConditions = PacakgeSearch;
            this.Transaction.CurrentTransactionObject = new TERMS.Business.Centers.SalesCenter.TransactionObject();

            this.Page.Response.Redirect("~/Page/Package2/SearchConditionsMeassageAHForm.aspx?TYPE=Promos");

        }
        else
        {
            PacakgeSearch.HotelSearchCondition.CheckIn = Convert.ToDateTime(DateTime.Now.AddDays(14).ToString("MM/dd/yyyy", DateTimeFormatInfo.InvariantInfo)).AddDays(1);
            PacakgeSearch.HotelSearchCondition.CheckOut = Convert.ToDateTime(DateTime.Now.AddDays(21).ToString("MM/dd/yyyy", DateTimeFormatInfo.InvariantInfo));

            AirTripCondition DPTairTripCondition = new AirTripCondition();
            DPTairTripCondition.Departure = new Airport();
            DPTairTripCondition.DepartureDate = Convert.ToDateTime(DateTime.Now.AddDays(14).ToString("MM/dd/yyyy", DateTimeFormatInfo.InvariantInfo));
            DPTairTripCondition.IsDepartureTimeSpecified = false;
            PacakgeSearch.AirSearchCondition.AddTripCondition(DPTairTripCondition);
            PacakgeSearch.AirSearchCondition.Airlines = null;
            AirTripCondition RTNairTripCondition = new AirTripCondition();
            RTNairTripCondition.DepartureDate = Convert.ToDateTime(DateTime.Now.AddDays(21).ToString("MM/dd/yyyy", DateTimeFormatInfo.InvariantInfo));
            RTNairTripCondition.Destination = new Airport();
            RTNairTripCondition.IsDepartureTimeSpecified = false;
            PacakgeSearch.AirSearchCondition.AddTripCondition(RTNairTripCondition);
            PacakgeSearch.AirSearchCondition.FlightType = "roundtrip";
            this.Transaction.CurrentSearchConditions = PacakgeSearch;
            this.Transaction.CurrentTransactionObject = new TERMS.Business.Centers.SalesCenter.TransactionObject();

            this.Page.Response.Redirect("~/Page/Package2/SearchConditionsMeassageAHForm.aspx?TYPE=Promos");

        }
    }