protected void Page_Load(object sender, EventArgs e) { SetMeta(string.Format("{0} - {1}", SettingsMain.ShopName, Resource.Admin_MasterPageAdminCatalog_Catalog)); Category cat = null; if (!string.IsNullOrEmpty(Request["categoryid"])) { if (Request["categoryid"].ToLower().Equals("WithoutCategory".ToLower())) { ShowMethod = EShowMethod.OnlyWithoutCategories; } else if (Request["categoryid"].ToLower().Equals("InCategories".ToLower())) { ShowMethod = EShowMethod.OnlyInCategories; } else if (Request["categoryid"].ToLower().Equals("AllProducts".ToLower())) { ShowMethod = EShowMethod.AllProducts; } else { ShowMethod = EShowMethod.Normal; int.TryParse(Request["categoryid"], out CategoryId); cat = CategoryService.GetCategory(CategoryId); adminCategoryView.CategoryID = CategoryId; } } else { CategoryId = 0; ShowMethod = EShowMethod.Normal; } if (cat == null) { CategoryId = 0; if (ShowMethod == EShowMethod.Normal) { ShowMethod = EShowMethod.AllProducts; ShowMethod = EShowMethod.Normal; } } else { CategoryId = cat.CategoryId; lblCategoryName.Text = cat.Name; ConfirmButtonExtenderCategory.ConfirmText = string.Format(Resource.Admin_MasterPageAdminCatalog_Confirmation, cat.Name); } hlEditCategory.NavigateUrl = "javascript:open_window(\'m_Category.aspx?CategoryID=" + CategoryId + "&mode=edit\', 750, 640)"; if (!IsPostBack) { var node2 = new TreeNode { Text = Resource.Admin_m_Category_Root, Value = "0", Selected = true }; tree2.Nodes.Add(node2); LoadChildCategories2(tree2.Nodes[0]); _paging = new SqlPaging() { ItemsPerPage = 10, }; switch (ShowMethod) { case EShowMethod.AllProducts: lblCategoryName.Text = Resource.Admin_Catalog_AllProducts; _paging.TableName = "[Catalog].[Product] left JOIN [Catalog].[Offer] ON [Product].[ProductID] = [Offer].[ProductID] and [Offer].[Main] = 1 LEFT JOIN [Catalog].[Photo] ON [Product].[ProductID] = [Photo].[ObjId] and Type='Product' AND [Photo].[Main] = 1 LEFT JOIN [Catalog].[ProductCategories] ON [Catalog].[ProductCategories].[ProductID] = [Product].[ProductID]"; break; case EShowMethod.OnlyInCategories: lblCategoryName.Text = Resource.Admin_Catalog_AllProductsInCategories; _paging.TableName = "[Catalog].[Product] left JOIN [Catalog].[Offer] ON [Product].[ProductID] = [Offer].[ProductID] and [Offer].[Main] = 1 LEFT JOIN [Catalog].[Photo] ON [Product].[ProductID] = [Photo].[ObjId] and Type='Product' AND [Photo].[Main] = 1 inner JOIN [Catalog].[ProductCategories] ON [Catalog].[ProductCategories].[ProductID] = [Product].[ProductID]"; break; case EShowMethod.OnlyWithoutCategories: lblCategoryName.Text = Resource.Admin_Catalog_AllProductsWithoutCategories; _paging.TableName = "[Catalog].[Product] inner join (select ProductId from Catalog.Product where ProductId not in(Select ProductId from Catalog.ProductCategories)) as tmp on tmp.ProductId=[Product].[ProductID] Left JOIN [Catalog].[Offer] ON [Product].[ProductID] = [Offer].[ProductID] LEFT JOIN [Catalog].[Photo] ON [Product].[ProductID] = [Photo].[ObjId] and Type='Product' AND [Photo].[Main] = 1"; break; case EShowMethod.Normal: _paging.TableName = "[Catalog].[Product] left JOIN [Catalog].[Offer] ON [Product].[ProductID] = [Offer].[ProductID] and [Offer].[Main] = 1 LEFT JOIN [Catalog].[Photo] ON [Product].[ProductID] = [Photo].[ObjId] and Type='Product' AND [Photo].[Main] = 1 INNER JOIN Catalog.ProductCategories on ProductCategories.ProductId = [Product].[ProductID]"; break; } _paging.AddFieldsRange(new List<Field>() { new Field {Name = "Product.ProductID as ID", IsDistinct = true}, new Field {Name = "Product.ArtNo", Sorting = ShowMethod!= EShowMethod.Normal ? SortDirection.Ascending : (SortDirection?)null}, new Field {Name = "PhotoName"}, new Field {Name = "(Select Count(ProductID) From Catalog.ProductCategories Where ProductID=Product.ProductID) as ProductCategoriesCount"}, new Field {Name = "BriefDescription"}, new Field {Name = "Name"}, new Field {Name = "Price"}, new Field {Name = "(Select sum (Amount) from catalog.Offer where Offer.ProductID=Product.productID) as Amount"}, new Field {Name = "Enabled"}, new Field { Name = ShowMethod == EShowMethod.Normal ? "ProductCategories.SortOrder" : "-1 as SortOrder", Sorting = SortDirection.Ascending }, new Field {Name = "Offer.ColorID", NotInQuery = true}, new Field {Name = "Offer.SizeID", NotInQuery = true} }); if (ShowMethod == EShowMethod.Normal) { _paging.AddField(new Field { Name = "ProductCategories.CategoryID", NotInQuery = true, Filter = new EqualFieldFilter { Value = CategoryId.ToString(), ParamName = "@CategoryID" } }); grid.ChangeHeaderImageUrl("arrowSortOrder", "images/arrowup.gif"); } else { grid.ChangeHeaderImageUrl("arrowArtNo", "images/arrowup.gif"); } pageNumberer.CurrentPageIndex = 1; pnlProducts.Visible = CategoryId != 0 || ShowMethod != EShowMethod.Normal; productsHeader.Visible = ShowMethod == EShowMethod.Normal; adminCategoryView.Visible = ShowMethod == EShowMethod.Normal; grid.Columns[9].Visible = ShowMethod == EShowMethod.Normal; _paging.CurrentPageIndex = 1; ViewState["Paging"] = _paging; if (Request["search"].IsNotEmpty()) { var product = ProductService.GetProduct(Request["search"]); if (product != null) { Response.Redirect("Product.aspx?productID=" + product.ID); return; } if ( ProductService.GetProductsCount("where name like '%' + @search + '%'", new SqlParameter("@search", Request["search"])) > ProductService.GetProductsCount("where artno like '%' + @search + '%'", new SqlParameter("@search", Request["search"]))) { txtName.Text = Request["search"]; } else { txtArtNo.Text = Request["search"]; } btnFilter_Click(null, null); } if (Request["colorId"].IsNotEmpty()) { var color = ColorService.GetColor(Request["colorId"].TryParseInt()); if (color != null) { lblCategoryName.Text += string.Format(" {0}: {1}", Resource.Admin_Catalog_Color, color.ColorName); _paging.Fields["Offer.ColorID"].Filter = new EqualFieldFilter { ParamName = "@colorId", Value = Request["colorId"] }; } } if (Request["sizeid"].IsNotEmpty()) { var size = SizeService.GetSize(Request["sizeid"].TryParseInt()); if (size != null) { lblCategoryName.Text += string.Format(" {0}: {1}", Resource.Admin_Catalog_Size, size.SizeName); _paging.Fields["Offer.SizeID"].Filter = new EqualFieldFilter { ParamName = "@sizeId", Value = Request["sizeId"] }; } } } else { _paging = (SqlPaging)(ViewState["Paging"]); _paging.ItemsPerPage = SQLDataHelper.GetInt(ddRowsPerPage.SelectedValue); if (_paging == null) { throw (new Exception("Paging lost")); } string strIds = Request.Form["SelectedIds"]; if (!string.IsNullOrEmpty(strIds)) { strIds = strIds.Trim(); var arrids = strIds.Split(' '); var ids = new string[arrids.Length]; _selectionFilter = new InSetFieldFilter { IncludeValues = true }; _selectionFilterCategories = new InSetFieldFilter { IncludeValues = true }; for (int idx = 0; idx <= ids.Length - 1; idx++) { string t = arrids[idx]; var idParts = t.Split('_'); switch (idParts[0]) { case "Product": if (idParts[1] != "-1") { ids[idx] = idParts[1]; } else { _selectionFilter.IncludeValues = false; _inverseSelection = true; } break; case "Category": if (idParts[1] != "-1") { _selectedCategories.Add(idParts[1]); } else { _selectionFilterCategories.IncludeValues = false; _inverseSelection = true; } break; default: _inverseSelection = true; break; } } _selectionFilter.Values = ids.Distinct().Where(item => item != null).ToArray(); _selectionFilterCategories.Values = _selectedCategories.ToArray(); } } }
protected void Page_Load(object sender, EventArgs e) { SetMeta(string.Format("{0} - {1}", SettingsMain.ShopName, Resource.Admin_MasterPageAdminCatalog_Catalog)); Category cat = null; if (!string.IsNullOrEmpty(Request["categoryid"])) { if (Request["categoryid"].ToLower().Equals("WithoutCategory".ToLower())) { ShowMethod = EShowMethod.OnlyWithoutCategories; } else if (Request["categoryid"].ToLower().Equals("InCategories".ToLower())) { ShowMethod = EShowMethod.OnlyInCategories; } else if (Request["categoryid"].ToLower().Equals("AllProducts".ToLower())) { ShowMethod = EShowMethod.AllProducts; } else { ShowMethod = EShowMethod.Normal; int.TryParse(Request["categoryid"], out CategoryId); cat = CategoryService.GetCategory(CategoryId); adminCategoryView.CategoryID = CategoryId; } } else { CategoryId = 0; ShowMethod = EShowMethod.Normal; } if (cat == null) { CategoryId = 0; if (ShowMethod == EShowMethod.Normal) { ShowMethod = EShowMethod.AllProducts; ShowMethod = EShowMethod.Normal; } } else { CategoryId = cat.CategoryId; lblCategoryName.Text = cat.Name; hlDeleteCategory.Attributes["data-confirm"] = string.Format(Resource.Admin_MasterPageAdminCatalog_Confirmation, cat.Name); } hlEditCategory.NavigateUrl = "javascript:open_window(\'m_Category.aspx?CategoryID=" + CategoryId + "&mode=edit\', 750, 640)"; if (!IsPostBack) { var node2 = new TreeNode { Text = Resource.Admin_m_Category_Root, Value = "0", Selected = true }; tree2.Nodes.Add(node2); LoadChildCategories2(tree2.Nodes[0]); _paging = new SqlPaging() { ItemsPerPage = 10, }; switch (ShowMethod) { case EShowMethod.AllProducts: lblCategoryName.Text = Resource.Admin_Catalog_AllProducts; _paging.TableName = "[Catalog].[Product] left JOIN [Catalog].[Offer] ON [Product].[ProductID] = [Offer].[ProductID] and [Offer].[Main] = 1 LEFT JOIN [Catalog].[Photo] ON [Product].[ProductID] = [Photo].[ObjId] and Type='Product' AND [Photo].[Main] = 1 LEFT JOIN [Catalog].[ProductCategories] ON [Catalog].[ProductCategories].[ProductID] = [Product].[ProductID]"; break; case EShowMethod.OnlyInCategories: lblCategoryName.Text = Resource.Admin_Catalog_AllProductsInCategories; _paging.TableName = "[Catalog].[Product] left JOIN [Catalog].[Offer] ON [Product].[ProductID] = [Offer].[ProductID] and [Offer].[Main] = 1 LEFT JOIN [Catalog].[Photo] ON [Product].[ProductID] = [Photo].[ObjId] and Type='Product' AND [Photo].[Main] = 1 inner JOIN [Catalog].[ProductCategories] ON [Catalog].[ProductCategories].[ProductID] = [Product].[ProductID]"; break; case EShowMethod.OnlyWithoutCategories: lblCategoryName.Text = Resource.Admin_Catalog_AllProductsWithoutCategories; _paging.TableName = "[Catalog].[Product] inner join (select ProductId from Catalog.Product where ProductId not in(Select ProductId from Catalog.ProductCategories)) as tmp on tmp.ProductId=[Product].[ProductID] Left JOIN [Catalog].[Offer] ON [Product].[ProductID] = [Offer].[ProductID] and [Offer].[Main] = 1 LEFT JOIN [Catalog].[Photo] ON [Product].[ProductID] = [Photo].[ObjId] and Type='Product' AND [Photo].[Main] = 1"; break; case EShowMethod.Normal: _paging.TableName = "[Catalog].[Product] left JOIN [Catalog].[Offer] ON [Product].[ProductID] = [Offer].[ProductID] and [Offer].[Main] = 1 LEFT JOIN [Catalog].[Photo] ON [Product].[ProductID] = [Photo].[ObjId] and Type='Product' AND [Photo].[Main] = 1 INNER JOIN Catalog.ProductCategories on ProductCategories.ProductId = [Product].[ProductID]"; break; } _paging.AddFieldsRange(new List <Field>() { new Field { Name = "Product.ProductID as ID", IsDistinct = true }, new Field { Name = "[Settings].[ArtNoToString](Product.ProductID) as ArtNo", Sorting = ShowMethod != EShowMethod.Normal ? SortDirection.Ascending : (SortDirection?)null }, new Field { Name = "Product.ArtNo as ProductArtNo" }, new Field { Name = "PhotoName" }, new Field { Name = "(Select Count(ProductID) From Catalog.ProductCategories Where ProductID=Product.ProductID) as ProductCategoriesCount" }, new Field { Name = "BriefDescription" }, new Field { Name = "Name" }, new Field { Name = "Price" }, new Field { Name = "(Select sum (Amount) from catalog.Offer where Offer.ProductID=Product.productID) as Amount" }, new Field { Name = "(Select count (offerid) from catalog.Offer where Offer.ProductID=Product.productID) as OffersCount" }, new Field { Name = "Enabled" }, new Field { Name = ShowMethod == EShowMethod.Normal ? "ProductCategories.SortOrder" : "-1 as SortOrder", Sorting = SortDirection.Ascending }, new Field { Name = "Offer.ColorID", NotInQuery = true }, new Field { Name = "Offer.SizeID", NotInQuery = true } }); if (ShowMethod == EShowMethod.Normal) { _paging.AddField(new Field { Name = "ProductCategories.CategoryID", NotInQuery = true, Filter = new EqualFieldFilter { Value = CategoryId.ToString(), ParamName = "@CategoryID" } }); grid.ChangeHeaderImageUrl("arrowSortOrder", "images/arrowup.gif"); } else { grid.ChangeHeaderImageUrl("arrowArtNo", "images/arrowup.gif"); } pageNumberer.CurrentPageIndex = 1; pnlProducts.Visible = CategoryId != 0 || ShowMethod != EShowMethod.Normal; productsHeader.Visible = ShowMethod == EShowMethod.Normal; adminCategoryView.Visible = ShowMethod == EShowMethod.Normal; grid.Columns[9].Visible = ShowMethod == EShowMethod.Normal; _paging.CurrentPageIndex = 1; ViewState["Paging"] = _paging; if (Request["search"].IsNotEmpty()) { var product = ProductService.GetProduct(Request["search"], true); if (product != null) { Response.Redirect("Product.aspx?productID=" + product.ID); return; } if (ProductService.GetProductsCount("where name like '%' + @search + '%'", new SqlParameter("@search", Request["search"])) > ProductService.GetProductsCount("where artno like '%' + @search + '%'", new SqlParameter("@search", Request["search"]))) { txtName.Text = Request["search"]; } else { txtArtNo.Text = Request["search"]; } btnFilter_Click(null, null); } if (Request["colorId"].IsNotEmpty()) { var color = ColorService.GetColor(Request["colorId"].TryParseInt()); if (color != null) { lblCategoryName.Text += string.Format(" {0}: {1}", Resource.Admin_Catalog_Color, color.ColorName); _paging.Fields["Offer.ColorID"].Filter = new EqualFieldFilter { ParamName = "@colorId", Value = Request["colorId"] }; } } if (Request["sizeid"].IsNotEmpty()) { var size = SizeService.GetSize(Request["sizeid"].TryParseInt()); if (size != null) { lblCategoryName.Text += string.Format(" {0}: {1}", Resource.Admin_Catalog_Size, size.SizeName); _paging.Fields["Offer.SizeID"].Filter = new EqualFieldFilter { ParamName = "@sizeId", Value = Request["sizeId"] }; } } } else { _paging = (SqlPaging)(ViewState["Paging"]); _paging.ItemsPerPage = SQLDataHelper.GetInt(ddRowsPerPage.SelectedValue); if (_paging == null) { throw (new Exception("Paging lost")); } string strIds = Request.Form["SelectedIds"]; if (!string.IsNullOrEmpty(strIds)) { strIds = strIds.Trim(); var arrids = strIds.Split(' '); var ids = new string[arrids.Length]; _selectionFilter = new InSetFieldFilter { IncludeValues = true }; for (int idx = 0; idx <= ids.Length - 1; idx++) { string t = arrids[idx]; var idParts = t.Split('_'); switch (idParts[0]) { case "Product": if (idParts[1] != "-1") { ids[idx] = idParts[1]; } else { _selectionFilter.IncludeValues = false; _inverseSelection = true; } break; default: _inverseSelection = true; break; } } _selectionFilter.Values = ids.Distinct().Where(item => item != null).ToArray(); } } }