Exemplo n.º 1
0
        protected void Page_PreRender(object sender, EventArgs e)
        {
            _paging.CurrentPageIndex = paging.CurrentPage != 0 ? paging.CurrentPage : 1;
            _paging.ItemsPerPage     = paging.CurrentPage != 0 ? SettingsCatalog.ProductsPerPage : int.MaxValue;
            var totalCount = _paging.TotalRowsCount;

            paging.TotalPages = _paging.PageCount(totalCount);

            if (totalCount != 0 && paging.TotalPages < paging.CurrentPage || paging.CurrentPage < 0)
            {
                Error404();
                return;
            }

            if (Request["ajax"] == "1")
            {
                Response.Clear();
                Response.ContentType = "application/json";

                var prices =
                    _paging.GetCustomData(
                        "min(Price - Price * discount/100) as PriceFrom, max(Price - Price * discount/100) as PriceTo",
                        string.Empty,
                        reader => new
                {
                    From = SQLDataHelper.GetFloat(reader, "PriceFrom"),
                    To   = SQLDataHelper.GetFloat(reader, "PriceTo"),
                }, false).First();

                var res = JsonConvert.SerializeObject(new
                {
                    ProductsCount     = totalCount,
                    AvaliblePriceFrom = Math.Floor(prices.From / CurrencyService.CurrentCurrency.Value),
                    AvaliblePriceTo   = Math.Ceiling(prices.To / CurrencyService.CurrentCurrency.Value),
                    AvalibleBrands    = filterBrand.AvalibleBrandIDs,
                });
                Response.Write(res);
                Response.End();
                return;
            }

            var data = _paging.PageItems;

            productView.DataSource = data;
            productView.DataBind();

            bool exluderingFilters = SettingsCatalog.ExluderingFilters;

            filterBrand.AvalibleBrandIDs = exluderingFilters
                ? _paging.GetCustomData("BrandID", " AND BrandID is not null", reader => SQLDataHelper.GetInt(reader, "BrandID"), true)
                : null;
        }
Exemplo n.º 2
0
        protected void Page_PreRender(object sender, EventArgs e)
        {
            DataTable data = _paging.PageItems;

            while (data.Rows.Count < 1 && _paging.CurrentPageIndex > 1)
            {
                _paging.CurrentPageIndex--;
                data = _paging.PageItems;
            }

            var clmn = new DataColumn("IsSelected", typeof(bool))
            {
                DefaultValue = _inverseSelection
            };

            data.Columns.Add(clmn);
            if ((_selectionFilter != null) && (_selectionFilter.Values != null))
            {
                for (int i = 0; i <= data.Rows.Count - 1; i++)
                {
                    int intIndex = i;
                    if (Array.Exists(_selectionFilter.Values, c => c == (data.Rows[intIndex]["ID"]).ToString()))
                    {
                        data.Rows[i]["IsSelected"] = !_inverseSelection;
                    }
                }
            }

            if (data.Rows.Count < 1)
            {
                goToPage.Visible = false;
            }

            grid.DataSource = data;
            grid.DataBind();

            pageNumberer.PageCount = _paging.PageCount;
            lblFound.Text          = _paging.TotalRowsCount.ToString();
            lblTotal.Text          = CatalogService.GetStringPrice(_paging.GetCustomData("Sum ([order].[Sum]) as totalPrice", "",
                                                                                         reader => SQLDataHelper.GetFloat(reader, "totalPrice")).FirstOrDefault());
        }
Exemplo n.º 3
0
        protected void Page_Prerender(object sender, EventArgs e)
        {
            _paging.CurrentPageIndex = paging.CurrentPage != 0 ? paging.CurrentPage : 1;
            _paging.ItemsPerPage     = paging.CurrentPage != 0 ? SettingsCatalog.ProductsPerPage : int.MaxValue;
            var totalCount = _paging.TotalRowsCount;

            paging.TotalPages = _paging.PageCount(totalCount);

            if (totalCount != 0 && paging.TotalPages < paging.CurrentPage || paging.CurrentPage < 0)
            {
                Error404();
                return;
            }

            // if we get request from ajax filter
            if (Request["ajax"] == "1")
            {
                var prices =
                    _paging.GetCustomData(
                        "min(Price - Price * discount/100) as PriceFrom, max(Price - Price * discount/100) as PriceTo",
                        string.Empty,
                        reader => new
                {
                    From = SQLDataHelper.GetFloat(reader, "PriceFrom"),
                    To   = SQLDataHelper.GetFloat(reader, "PriceTo")
                }, false
                        ).First();
                Response.Clear();
                Response.ContentType = "application/json";

                var res = JsonConvert.SerializeObject(new
                {
                    ProductsCount     = totalCount,
                    AvaliblePriceFrom = Math.Floor(prices.From / CurrencyService.CurrentCurrency.Value),
                    AvaliblePriceTo   = Math.Ceiling(prices.To / CurrencyService.CurrentCurrency.Value),
                });
                Response.Write(res);
                Response.End();
                return;
            }

            if (!string.IsNullOrEmpty(Page.Request["name"]) && string.IsNullOrEmpty(Page.Request["ignorelog"]))
            {
                var url = Page.Request.Url.ToString();
                url = url.Substring(url.LastIndexOf("/"), url.Length - url.LastIndexOf("/"));
                StatisticService.AddSearchStatistic(
                    url,
                    Page.Request["name"],
                    string.Format(Resource.Client_Search_SearchIn,
                                  ddlCategory.SelectedItem.Text,
                                  filterPrice.CurValMin,
                                  string.IsNullOrEmpty(Request["priceto"]) ? "∞" : filterPrice.CurValMax.ToString()),
                    totalCount,
                    CustomerContext.CurrentCustomer.Id);
            }

            //filterPrice.Min = prices.Key / CurrencyService.CurrentCurrency.Value;
            //filterPrice.Max = prices.Value / CurrencyService.CurrentCurrency.Value;

            var data = _paging.PageItems;

            vProducts.DataSource = data;
            vProducts.ViewMode   = productViewChanger.SearchViewMode;
            vProducts.DataBind();

            int itemsCount = totalCount;

            lItemsCount.Text = string.Format("{0} {1}", itemsCount,
                                             Strings.Numerals(itemsCount, Resource.Client_Searsh_NoResults,
                                                              Resource.Client_Searsh_1Result,
                                                              Resource.Client_Searsh_2Results,
                                                              Resource.Client_Searsh_5Results));
            pnlSort.Visible = itemsCount > 0;

            if (GoogleTagManager.Enabled)
            {
                var tagManager = ((AdvantShopMasterPage)Master).TagManager;
                tagManager.PageType = GoogleTagManager.ePageType.searchresults;
                tagManager.ProdIds  = new List <string>();
                foreach (DataRow row in data.Rows)
                {
                    tagManager.ProdIds.Add((string)row["ArtNo"]);
                }
            }
        }
Exemplo n.º 4
0
        protected void Page_PreRender(object sender, EventArgs e)
        {
            _paging.ItemsPerPage     = paging.CurrentPage != 0 ? SettingsCatalog.ProductsPerPage : int.MaxValue;
            _paging.CurrentPageIndex = paging.CurrentPage != 0 ? paging.CurrentPage : 1;

            var totalCount = _paging.TotalRowsCount;

            lTotalItems.Text = string.Format(Resource.Client_Catalog_ItemsFound, totalCount);

            paging.TotalPages = _paging.PageCount(totalCount);

            if ((paging.TotalPages < paging.CurrentPage && paging.CurrentPage > 1) || paging.CurrentPage < 0)
            {
                Error404();
                return;
            }


            // if we get request from ajax filter
            if (Request["ajax"] == "1")
            {
                Response.Clear();
                Response.ContentType = "application/json";

                var prices =
                    _paging.GetCustomData(
                        "min(Price - Price * discount/100) as PriceFrom, max(Price - Price * discount/100) as PriceTo",
                        string.Empty,
                        reader => new
                {
                    From = SQLDataHelper.GetFloat(reader, "PriceFrom"),
                    To   = SQLDataHelper.GetFloat(reader, "PriceTo"),
                }, false
                        ).First();

                var res = JsonConvert.SerializeObject(new
                {
                    ProductsCount      = totalCount,
                    AvalibleProperties = filterProperty.AvaliblePropertyIDs,
                    AvalibleBrands     = filterBrand.AvalibleBrandIDs,
                    AvaliblePriceFrom  = Math.Floor(prices.From / CurrencyService.CurrentCurrency.Value),
                    AvaliblePriceTo    = Math.Ceiling(prices.To / CurrencyService.CurrentCurrency.Value),
                });
                Response.Write(res);
                Response.End();
                return;
            }

            var data = _paging.PageItems;

            productView.DataSource = data;
            productView.DataBind();


            bool exluderingFilters = SettingsCatalog.ExluderingFilters;

            filterProperty.AvaliblePropertyIDs = exluderingFilters
                                                     ? _paging.GetCustomData("PropertyValueID",
                                                                             " AND PropertyValueID is not null",
                                                                             reader =>
                                                                             SQLDataHelper.GetInt(reader, "PropertyValueID"),
                                                                             true,
                                                                             "Left JOIN [Catalog].[ProductPropertyValue] ON [Product].[ProductID] = [ProductPropertyValue].[ProductID]") : null;
            filterBrand.AvalibleBrandIDs = exluderingFilters
                                               ? _paging.GetCustomData("BrandID",
                                                                       " AND BrandID is not null",
                                                                       reader => SQLDataHelper.GetInt(reader, "BrandID"), true) : null;

            if (SettingsCatalog.ShowSizeFilter)
            {
                filterSize.AvalibleSizesIDs = exluderingFilters
                    ? _paging.GetCustomData("sizeOffer.SizeID", " AND sizeOffer.SizeID is not null",
                                            reader => SQLDataHelper.GetInt(reader, "SizeID"), true,
                                            "Left JOIN [Catalog].[Offer] as sizeOffer ON [Product].[ProductID] = [sizeOffer].[ProductID]")
                    : null;
            }

            if (SettingsCatalog.ShowColorFilter)
            {
                filterColor.AvalibleColorsIDs = exluderingFilters
                    ? _paging.GetCustomData("colorOffer.ColorID", " AND colorOffer.ColorID is not null",
                                            reader => SQLDataHelper.GetInt(reader, "ColorID"), true,
                                            "Left JOIN [Catalog].[Offer] as colorOffer ON [Product].[ProductID] = [colorOffer].[ProductID]")
                    : null;
            }

            if (GoogleTagManager.Enabled)
            {
                var tagManager = ((AdvantShopMasterPage)Master).TagManager;
                tagManager.PageType       = GoogleTagManager.ePageType.category;
                tagManager.CatCurrentId   = Category.ID;
                tagManager.CatCurrentName = Category.Name;
                tagManager.CatParentId    = Category.ParentCategory.ID;
                tagManager.CatParentName  = Category.ParentCategory.Name;

                tagManager.ProdIds = new List <string>();
                foreach (DataRow row in data.Rows)
                {
                    tagManager.ProdIds.Add((string)row["ArtNo"]);
                }
            }
        }