コード例 #1
0
            public virtual void LoadPriceRangeFilters(string priceRangeStr, IWebHelper webHelper, IPriceFormatter priceFormatter)
            {
                var priceRangeList = GetPriceRangeList(priceRangeStr);
                if (priceRangeList.Count > 0)
                {
                    this.Enabled = true;

                    var selectedPriceRange = GetSelectedPriceRange(webHelper, priceRangeStr);

                    this.Items = priceRangeList.ToList().Select(x =>
                    {
                        //from&to
                        var item = new PriceRangeFilterItem();
                        if (x.From.HasValue)
                            item.From = priceFormatter.FormatPrice(x.From.Value, true, false);
                        if (x.To.HasValue)
                            item.To = priceFormatter.FormatPrice(x.To.Value, true, false);
                        string fromQuery = string.Empty;
                        if (x.From.HasValue)
                            fromQuery = x.From.Value.ToString(new CultureInfo("en-US"));
                        string toQuery = string.Empty;
                        if (x.To.HasValue)
                            toQuery = x.To.Value.ToString(new CultureInfo("en-US"));

                        //is selected?
                        if (selectedPriceRange != null
                            && selectedPriceRange.From == x.From
                            && selectedPriceRange.To == x.To)
                            item.Selected = true;

                        //filter URL
                        string url = webHelper.ModifyQueryString(webHelper.GetThisPageUrl(true), QUERYSTRINGPARAM + "=" + fromQuery + "-" + toQuery, null);
                        url = ExcludeQueryStringParams(url, webHelper);
                        item.FilterUrl = url;

                        return item;
                    }).ToList();

                    if (selectedPriceRange != null)
                    {
                        //remove filter URL
                        string url = webHelper.RemoveQueryString(webHelper.GetThisPageUrl(true), QUERYSTRINGPARAM);
                        url = ExcludeQueryStringParams(url, webHelper);
                        this.RemoveFilterUrl = url;
                    }
                }
                else
                {
                    this.Enabled = false;
                }
            }
コード例 #2
0
            public virtual void LoadPriceRangeFilters(string priceRangeStr, IWebHelper webHelper, IPriceFormatter priceFormatter)
            {
                var priceRangeList = GetPriceRangeList(priceRangeStr);

                if (priceRangeList.Any())
                {
                    this.Enabled = true;

                    var selectedPriceRange = GetSelectedPriceRange(webHelper, priceRangeStr);

                    this.Items = priceRangeList.ToList().Select(x =>
                    {
                        //from&to
                        var item = new PriceRangeFilterItem();
                        if (x.From.HasValue)
                        {
                            item.From = priceFormatter.FormatPrice(x.From.Value, true, false);
                        }
                        if (x.To.HasValue)
                        {
                            item.To = priceFormatter.FormatPrice(x.To.Value, true, false);
                        }
                        string fromQuery = string.Empty;
                        if (x.From.HasValue)
                        {
                            fromQuery = x.From.Value.ToString(new CultureInfo("en-US"));
                        }
                        string toQuery = string.Empty;
                        if (x.To.HasValue)
                        {
                            toQuery = x.To.Value.ToString(new CultureInfo("en-US"));
                        }

                        //is selected?
                        if (selectedPriceRange != null &&
                            selectedPriceRange.From == x.From &&
                            selectedPriceRange.To == x.To)
                        {
                            item.Selected = true;
                        }

                        //filter URL
                        string url     = webHelper.ModifyQueryString(webHelper.GetThisPageUrl(true), QUERYSTRINGPARAM, $"{fromQuery}-{toQuery}");
                        url            = ExcludeQueryStringParams(url, webHelper);
                        item.FilterUrl = url;


                        return(item);
                    }).ToList();

                    if (selectedPriceRange != null)
                    {
                        //remove filter URL
                        string url = webHelper.ModifyQueryString(webHelper.GetThisPageUrl(true), QUERYSTRINGPARAM, null);
                        url = ExcludeQueryStringParams(url, webHelper);
                        this.RemoveFilterUrl = url;
                    }
                }
                else
                {
                    this.Enabled = false;
                }
            }
コード例 #3
0
            public virtual async Task LoadPriceRangeFilters(string priceRangeStr, IWebHelper webHelper, IPriceFormatter priceFormatter, ICurrencyService currencyService, Currency currency)
            {
                var priceRangeList = GetPriceRangeList(priceRangeStr);

                if (priceRangeList.Any())
                {
                    Enabled = true;

                    var selectedPriceRange = GetSelectedPriceRange(webHelper, priceRangeStr);

                    foreach (var x in priceRangeList.ToList())
                    {
                        //from&to
                        var item = new PriceRangeFilterItem();
                        if (x.From.HasValue)
                        {
                            x.From = await currencyService.ConvertFromPrimaryStoreCurrency(x.From.Value, currency);

                            item.From = priceFormatter.FormatPrice(x.From.Value, true, false);
                        }
                        if (x.To.HasValue)
                        {
                            x.To = await currencyService.ConvertFromPrimaryStoreCurrency(x.To.Value, currency);

                            item.To = priceFormatter.FormatPrice(x.To.Value, true, false);
                        }
                        string fromQuery = string.Empty;
                        if (x.From.HasValue)
                        {
                            fromQuery = x.From.Value.ToString(new CultureInfo("en-US"));
                        }
                        string toQuery = string.Empty;
                        if (x.To.HasValue)
                        {
                            toQuery = x.To.Value.ToString(new CultureInfo("en-US"));
                        }

                        //is selected?
                        if (selectedPriceRange != null &&
                            selectedPriceRange.From == x.From &&
                            selectedPriceRange.To == x.To)
                        {
                            item.Selected = true;
                        }

                        //filter URL
                        string url = webHelper.ModifyQueryString(webHelper.GetThisPageUrl(true), QUERYSTRINGPARAM, $"{fromQuery}-{toQuery}");
                        url            = ExcludeQueryStringParams(url, webHelper);
                        item.FilterUrl = url;


                        Items.Add(item);
                    }

                    if (selectedPriceRange != null)
                    {
                        //remove filter URL
                        string url = webHelper.ModifyQueryString(webHelper.GetThisPageUrl(true), QUERYSTRINGPARAM, null);
                        url = ExcludeQueryStringParams(url, webHelper);
                        this.RemoveFilterUrl = url;
                    }
                }
                else
                {
                    this.Enabled = false;
                }
            }