public ActionResult ProductSpecAttrUpdate(ProductSpecificationAttributeModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageProducts)) return AccessDeniedView(); var psa = _specificationAttributeService.GetProductSpecificationAttributeById(model.Id); if (psa == null) return Content("No product specification attribute found with the specified id"); var productId = psa.Product.Id; //a vendor should have access only to his products if (_workContext.CurrentVendor != null) { var product = _productService.GetProductById(productId); if (product != null && product.VendorId != _workContext.CurrentVendor.Id) { return Content("This is not your product"); } } //we do not allow editing these fields anymore (when we have distinct attribute types) //psa.CustomValue = model.CustomValue; //psa.AllowFiltering = model.AllowFiltering; psa.ShowOnProductPage = model.ShowOnProductPage; psa.DisplayOrder = model.DisplayOrder; _specificationAttributeService.UpdateProductSpecificationAttribute(psa); return new NullJsonResult(); }
public ActionResult ProductSpecAttrList(DataSourceRequest command, int productId) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageProducts)) return AccessDeniedView(); //a vendor should have access only to his products if (_workContext.CurrentVendor != null) { var product = _productService.GetProductById(productId); if (product != null && product.VendorId != _workContext.CurrentVendor.Id) { return Content("This is not your product"); } } var productrSpecs = _specificationAttributeService.GetProductSpecificationAttributes(productId); var productrSpecsModel = productrSpecs .Select(x => { var psaModel = new ProductSpecificationAttributeModel { Id = x.Id, AttributeTypeName = x.AttributeType.GetLocalizedEnum(_localizationService, _workContext), AttributeName = x.SpecificationAttributeOption.SpecificationAttribute.Name, AllowFiltering = x.AllowFiltering, ShowOnProductPage = x.ShowOnProductPage, DisplayOrder = x.DisplayOrder }; switch (x.AttributeType) { case SpecificationAttributeType.Option: psaModel.ValueRaw = HttpUtility.HtmlEncode(x.SpecificationAttributeOption.Name); break; case SpecificationAttributeType.CustomText: psaModel.ValueRaw = HttpUtility.HtmlEncode(x.CustomValue); break; case SpecificationAttributeType.CustomHtmlText: //do not encode? //psaModel.ValueRaw = x.CustomValue; psaModel.ValueRaw = HttpUtility.HtmlEncode(x.CustomValue); break; case SpecificationAttributeType.Hyperlink: psaModel.ValueRaw = x.CustomValue; break; default: break; } return psaModel; }) .ToList(); var gridModel = new DataSourceResult { Data = productrSpecsModel, Total = productrSpecsModel.Count }; return Json(gridModel); }
public ActionResult ProductSpecAttrUpdate(int psaId, ProductSpecificationAttributeModel model, GridCommand command) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageProducts)) return AccessDeniedView(); var psa = _specificationAttributeService.GetProductSpecificationAttributeById(psaId); if (psa == null) return Content("No product specification attribute found with the specified id"); var productId = psa.Product.Id; //a vendor should have access only to his products if (_workContext.CurrentVendor != null) { var product = _productService.GetProductById(productId); if (product != null && product.VendorId != _workContext.CurrentVendor.Id) { return Content("This is not your product"); } } psa.CustomValue = model.CustomValue; psa.AllowFiltering = model.AllowFiltering; psa.ShowOnProductPage = model.ShowOnProductPage; psa.DisplayOrder = model.DisplayOrder; _specificationAttributeService.UpdateProductSpecificationAttribute(psa); return ProductSpecAttrList(command, psa.ProductId); }
public ActionResult ProductSpecAttrList(GridCommand command, int productId) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageProducts)) return AccessDeniedView(); //a vendor should have access only to his products if (_workContext.CurrentVendor != null) { var product = _productService.GetProductById(productId); if (product != null && product.VendorId != _workContext.CurrentVendor.Id) { return Content("This is not your product"); } } var productrSpecs = _specificationAttributeService.GetProductSpecificationAttributesByProductId(productId); var productrSpecsModel = productrSpecs .Select(x => { var psaModel = new ProductSpecificationAttributeModel() { Id = x.Id, SpecificationAttributeName = x.SpecificationAttributeOption.SpecificationAttribute.Name, SpecificationAttributeOptionName = x.SpecificationAttributeOption.Name, CustomValue = x.CustomValue, AllowFiltering = x.AllowFiltering, ShowOnProductPage = x.ShowOnProductPage, DisplayOrder = x.DisplayOrder }; return psaModel; }) .ToList(); var model = new GridModel<ProductSpecificationAttributeModel> { Data = productrSpecsModel, Total = productrSpecsModel.Count }; return new JsonResult { Data = model }; }
public ActionResult ProductSpecAttrUpdate(int psaId, ProductSpecificationAttributeModel model, GridCommand command) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageCatalog)) return AccessDeniedView(); var psa = _specificationAttributeService.GetProductSpecificationAttributeById(psaId); psa.CustomValue = model.CustomValue; psa.AllowFiltering = model.AllowFiltering; psa.ShowOnProductPage = model.ShowOnProductPage; psa.DisplayOrder = model.DisplayOrder; _specificationAttributeService.UpdateProductSpecificationAttribute(psa); return ProductSpecAttrList(command, psa.ProductId); }
public ActionResult ProductSpecAttrList(GridCommand command, int productId) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageCatalog)) return AccessDeniedView(); var productrSpecs = _specificationAttributeService.GetProductSpecificationAttributesByProductId(productId); var productrSpecsModel = productrSpecs .Select(x => { var psaModel = new ProductSpecificationAttributeModel() { Id = x.Id, SpecificationAttributeName = x.SpecificationAttributeOption.SpecificationAttribute.Name, SpecificationAttributeOptionName = x.SpecificationAttributeOption.Name, CustomValue = x.CustomValue, AllowFiltering = x.AllowFiltering, ShowOnProductPage = x.ShowOnProductPage, DisplayOrder = x.DisplayOrder }; return psaModel; }) .ToList(); var model = new GridModel<ProductSpecificationAttributeModel> { Data = productrSpecsModel, Total = productrSpecsModel.Count }; return new JsonResult { Data = model }; }