示例#1
0
        private void BuildSorting()
        {
            if (!string.IsNullOrEmpty(Request["sort"]))
            {
                Enum.TryParse(Request["sort"], true, out _sort);
            }


            foreach (ESortOrder enumItem in Enum.GetValues(typeof(ESortOrder)))
            {
                ddlSort.Items.Add(new ListItem
                {
                    Text     = enumItem.GetLocalizedName(),
                    Value    = enumItem.ToString(),
                    Selected = _sort == enumItem
                });
            }

            switch (_sort)
            {
            case ESortOrder.AscByAddingDate:
                _paging.OrderBy("DateAdded as DateAddedSort ASC");
                break;

            case ESortOrder.DescByAddingDate:
                _paging.OrderBy("DateAdded as DateAddedSort DESC");
                break;

            case ESortOrder.AscByName:
                _paging.OrderBy("Name as NameSort ASC");
                break;

            case ESortOrder.DescByName:
                _paging.OrderBy("Name as NameSort DESC");
                break;

            case ESortOrder.AscByPrice:
                _paging.OrderBy("[Offer].Price - [Offer].Price * [Product].Discount / 100 as PriceTemp ASC");
                break;

            case ESortOrder.DescByPrice:
                _paging.OrderBy("[Offer].Price - [Offer].Price * [Product].Discount / 100 as PriceTemp DESC");
                break;

            case ESortOrder.AscByRatio:
                _paging.OrderBy("Ratio as RatioSort ASC");
                break;

            case ESortOrder.DescByRatio:
                _paging.OrderBy("Ratio as RatioSort DESC");
                break;

            case ESortOrder.AscByPopularity:
                _paging.OrderBy("Popularity as PopularitySort ASC");
                break;

            case ESortOrder.DescByPopularity:
                _paging.OrderBy("Popularity as PopularitySort DESC");
                break;
            }
        }
示例#2
0
        private void BuildSorting()
        {
            var sort = ESortOrder.NoSorting;

            if (!string.IsNullOrEmpty(Request["sort"]))
            {
                Enum.TryParse(Request["sort"], true, out sort);
            }

            foreach (ESortOrder enumItem in Enum.GetValues(typeof(ESortOrder)))
            {
                ddlSort.Items.Add(new ListItem
                {
                    Text     = enumItem.GetLocalizedName(),
                    Value    = enumItem.ToString(),
                    Selected = sort == enumItem
                });
            }

            switch (sort)
            {
            case ESortOrder.AscByAddingDate:
                _paging.OrderBy("DateAdded as DateAddedSort ASC");
                break;

            case ESortOrder.DescByAddingDate:
                _paging.OrderBy("DateAdded as DateAddedSort DESC");
                break;

            case ESortOrder.AscByName:
                _paging.OrderBy("Name as NameSort ASC");
                break;

            case ESortOrder.DescByName:
                _paging.OrderBy("Name as NameSort DESC");
                break;

            case ESortOrder.AscByPrice:
                _paging.OrderBy("[Offer].Price - [Offer].Price * [Product].Discount / 100 as PriceTemp ASC");
                break;

            case ESortOrder.DescByPrice:
                _paging.OrderBy("[Offer].Price - [Offer].Price * [Product].Discount / 100 as PriceTemp DESC");
                break;

            case ESortOrder.AscByRatio:
                _paging.OrderBy("Ratio as RatioSort ASC");
                break;

            case ESortOrder.DescByRatio:
                _paging.OrderBy("Ratio as RatioSort DESC");
                break;

            case ESortOrder.AscByPopularity:
                _paging.OrderBy("Popularity as PopularitySort ASC");
                break;

            case ESortOrder.DescByPopularity:
                _paging.OrderBy("Popularity as PopularitySort DESC");
                break;

            default:
                switch (_typeFlag)
                {
                case ProductOnMain.TypeFlag.Bestseller:
                    _paging.OrderBy("SortBestseller as Sort ASC");
                    break;

                case ProductOnMain.TypeFlag.New:
                    _paging.OrderBy("SortNew as Sort ASC, DateModified DESC");
                    break;

                case ProductOnMain.TypeFlag.Discount:
                    _paging.OrderBy("SortDiscount as Sort ASC");
                    break;

                case ProductOnMain.TypeFlag.OnSale:
                    _paging.OrderBy("DateModified DESC");
                    break;

                case ProductOnMain.TypeFlag.Recomended:
                    _paging.OrderBy("SortRecomended as Sort ASC, DateModified DESC");
                    break;
                }
                break;
            }
        }
示例#3
0
        private void BuildSorting()
        {
            var sort = Category.Sorting;

            if (!string.IsNullOrEmpty(Request["sort"]))
            {
                Enum.TryParse(Request["sort"], true, out sort);
            }

            foreach (ESortOrder enumItem in Enum.GetValues(typeof(ESortOrder)))
            {
                if (!SettingsCatalog.EnableProductRating &&
                    (enumItem == ESortOrder.DescByRatio || enumItem == ESortOrder.AscByRatio))
                {
                    continue;
                }

                ddlSort.Items.Add(new ListItem
                {
                    Text     = enumItem.GetLocalizedName(),
                    Value    = enumItem.ToString(),
                    Selected = sort == enumItem
                });
            }

            _paging.OrderBy(
                "(CASE WHEN Price=0 THEN 0 ELSE 1 END) as TempSort DESC",
                "AmountSort AS TempAmountSort DESC");

            switch (sort)
            {
            case ESortOrder.AscByName:
                _paging.OrderBy("Name as NameSort ASC");
                break;

            case ESortOrder.DescByName:
                _paging.OrderBy("Name as NameSort DESC");
                break;

            case ESortOrder.AscByPrice:
                _paging.OrderBy("[Offer].Price - [Offer].Price * [Product].Discount / 100 as PriceTemp ASC");
                break;

            case ESortOrder.DescByPrice:
                _paging.OrderBy("[Offer].Price - [Offer].Price * [Product].Discount / 100 as PriceTemp DESC");
                break;

            case ESortOrder.AscByRatio:
                _paging.OrderBy("Ratio as RatioSort ASC");
                break;

            case ESortOrder.DescByRatio:
                _paging.OrderBy("Ratio as RatioSort DESC");
                break;

            case ESortOrder.AscByAddingDate:
                _paging.OrderBy("DateAdded as DateAddedSort ASC");
                break;

            case ESortOrder.DescByAddingDate:
                _paging.OrderBy("DateAdded as DateAddedSort DESC");
                break;
            //case ESortOrder.AscByPopularity:
            //    _paging.OrderBy("Popularity as PopularitySort ASC");
            //    break;
            //case ESortOrder.DescByPopularity:
            //    _paging.OrderBy("Popularity as PopularitySort DESC");
            //    break;

            case ESortOrder.AscByPopularity:
                _paging.OrderBy("PopularityManually * 100 + Popularity as PopularitySort ASC");
                break;

            case ESortOrder.DescByPopularity:
                _paging.OrderBy("PopularityManually * 100 + Popularity as PopularitySort DESC");
                break;
            }

            _paging.OrderBy(!Indepth ? "[ProductCategories].[SortOrder] ASC" : "");
        }