public ActionResult ShowBySlugProduct(string Slug, int?p, List <Guid> group) { var cat = _categoryService.GetBySlug(Slug); if (cat == null) { return(Redirect("/" + SiteConstants.Instance.ProductUrlIdentifier)); } var cats = _categoryService.GetTreeCategories(cat); var ProductFindter = _productSevice.GetFindterProduct(); if (group != null) { ProductFindter.AddGroupId(group); } else { group = new List <Guid>(); } if (cats != null) { ProductFindter.AddCat(cats); } var groupclass = _productSevice.GetClassByProducts(cats); var attr = _productSevice.GetAttributeByClass(groupclass, true); List <CategoryProductFindterViewModel> Attributes = new List <CategoryProductFindterViewModel>(); foreach (var it in attr) { var cl = new CategoryProductFindterViewModel { Name = it.LangName, Title = string.Concat("Product.Attribute.", it.LangName), Options = new List <CategoryProductFindterOption>() }; if (it.ValueType == 2) { if (it.ValueOption.IsNullEmpty()) { continue; } dynamic json = JsonConvert.DeserializeObject(it.ValueOption); if (json == null) { continue; } foreach (var itt in json) { var pit = new CategoryProductFindterOption { Value = itt, Text = itt, }; if (Request[string.Concat(cl.Name, ".", pit.Value)] == "1") { pit.Check = true; ProductFindter.SetAttributeEquas(it.Id, (string)itt); } cl.Options.Add(pit); } } Attributes.Add(cl); } int limit = 10; try { limit = int.Parse(ThemesSetting.getValue("ProductPageLimit").ToString()); } catch { } var count = ProductFindter.GetCount(); var Paging = CalcPaging(limit, p, count); var model = new CategoryProductListViewModel { Cat = cat, Paging = Paging, ListProduct = ProductFindter.GetList(limit, Paging.Page), GroupProducts = groupclass, GroupSelect = group, Attributes = Attributes }; return(View(model)); }