public TourMerchandise SearchTour(string Language)
    {
        //��Cache�в��ҽ�
        TourMerchandise tourMerchandise = null;
        if (Utility.IsSubAgent)
            tourMerchandise = (TourMerchandise)MVMerchandisePool.Find("SUBTour");
        else
            tourMerchandise = (TourMerchandise)MVMerchandisePool.Find("Tour");

        if (tourMerchandise == null)
        {
            TourProductSearcher searcher = new TourProductSearcher();
            IList<TourProduct> tps = new List<TourProduct>();

            tps = searcher.Search(UserInfo.Entity);

            if (tps != null && tps.Count > 0)
            {
                tourMerchandise = new TourMerchandise((List<TourProduct>)tps);

                if (Utility.IsSubAgent)
                {
                    GetSpecialTourPrice(tourMerchandise, true);
                }

                if (Utility.IsSubAgent)
                {
                    MVMerchandisePool.Cache("SUBTour", tourMerchandise);
                }
                else
                {

                    MVMerchandisePool.Cache("Tour", tourMerchandise); //Cache
                }
            }
            else
                return null;
        }

        tourMerchandise.LanguageFlag = Language;

        return tourMerchandise;
    }
    public TourMerchandise SearchTour(Terms.Sales.Business.TourSearchCondition searchCondition, string Language)
    {
        //searchCondition.UserInfo = UserInfo;
        ////��Cache�в��ҽ�
        //TourMerchandise tourMerchandise = null;
        //if (Utility.IsSubAgent)
        //    tourMerchandise = (TourMerchandise)MVMerchandisePool.FindB2BTour(searchCondition);
        //else
        //    tourMerchandise = (TourMerchandise)MVMerchandisePool.Find(searchCondition);

        //if (tourMerchandise == null)
        //{
        TourProductSearcher searcher = new TourProductSearcher();

        TERMS.Common.Search.TourSearchCondition tourSearchCondition = new TERMS.Common.Search.TourSearchCondition();
        tourSearchCondition.SetCity(searchCondition.City);
        tourSearchCondition.SetRegion(searchCondition.Region);
        tourSearchCondition.SetCountry(searchCondition.Counrty);
        tourSearchCondition.IsLandOnly = searchCondition.IsLandOnly;
        tourSearchCondition.TravelDaysFrom = searchCondition.TravelDaysFrom;
        tourSearchCondition.TravelDaysTo = searchCondition.TravelDaysTo;
        tourSearchCondition.PriceType = searchCondition.PriceType;
        tourSearchCondition.SetDepartureRange(searchCondition.TravelBeginDate.AddDays(-7), searchCondition.TravelBeginDate.AddDays(7));

        List<string> citys = new List<string>();

        citys.Add(searchCondition.City);

        return SearchTour(searchCondition, citys, Language);

        //    IList<TourProduct> tps = new List<TourProduct>();

        //    tps = searcher.Search(tourSearchCondition, UserInfo.Entity);

        //    if (tps != null && tps.Count > 0)
        //    {
        //        tourMerchandise = new TourMerchandise((List<TourProduct>)tps);

        //        if (Utility.IsSubAgent)
        //        {
        //            GetSpecialTourPrice(tourMerchandise, searchCondition.IsLandOnly);
        //        }

        //        MVMerchandisePool.Cache(searchCondition.Clone(), tourMerchandise); //Cache
        //    }
        //    else
        //        return null;
        //}

        //tourMerchandise.LanguageFlag = Language;

        //return tourMerchandise;
    }