public IViewComponentResult Invoke(string widgetZone, object additionalData) { if (!(additionalData is ProductDetailsModel)) { return(Content("")); } var product = (ProductDetailsModel)additionalData; //Get product attribute and mapping ProductAttribute productAttribute = _productPictureModifierService. GetProductAttributeByName(ProductPictureModifierDefault.ProductAttributeName).First(); IList <ProductAttributeMapping> productAttributeMappings = _productAttributeService. GetProductAttributeMappingsByProductId(product.Id); ProductAttributeMapping productAttributeForCustomColorSelector = productAttributeMappings .FirstOrDefault(x => x.ProductAttributeId == productAttribute.Id); //the product does not support custom color selector if (productAttributeForCustomColorSelector == null) { return(Content("")); } var model = new ProductPictureModifierModel() { ColorCode = string.IsNullOrWhiteSpace(productAttributeForCustomColorSelector.DefaultValue) ? ProductPictureModifierDefault.DefaultColorCode : productAttributeForCustomColorSelector.DefaultValue }; return(View("~/Plugins/Widgets.ProductPictureModifier/Views/PublicProductDetailColorSelector.cshtml", model)); }
public IActionResult Create() { if (!_permissionService.Authorize(StandardPermissionProvider.ManageWidgets)) { return(AccessDeniedView()); } var model = new ProductPictureModifierModel() { ColorCode = ProductPictureModifierDefault.DefaultColorCode }; return(View("~/Plugins/Widgets.ProductPictureModifier/Views/Admin/Create.cshtml", model)); }
public IActionResult Create(ProductPictureModifierModel model, bool continueEditing) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageWidgets)) { return(AccessDeniedView()); } //todo find out why model state validation failed even though product id is only validated and model has product id if (model.ProductId < 1) { ModelState.AddModelError(nameof(model.ProductId), _localizationService.GetResource("Admin.Widgets.ProductPictureModifier.Fields.Product.Required")); return(View("~/Plugins/Widgets.ProductPictureModifier/Views/Admin/Create.cshtml", model)); } ProductAttribute productAttribute = _productPictureModifierService. GetProductAttributeByName(ProductPictureModifierDefault.ProductAttributeName).First(); var productAttributeMapping = new ProductAttributeMapping { ProductAttributeId = productAttribute.Id, ProductId = model.ProductId, DefaultValue = model.ColorCode, AttributeControlTypeId = (int)AttributeControlType.TextBox }; _productAttributeService.InsertProductAttributeMapping(productAttributeMapping); //Logo Default Value _logoPositionService.Insert(new LogoPosition { ProductId = model.ProductId, ColorCode = model.ColorCode }); //Clear the cache for product picture preparation _cacheManager.RemoveByPattern(string.Format(ModelCacheEventConsumer.PRODUCT_DEFAULTPICTURE_PATTERN_KEY_BY_ID, model.ProductId)); SuccessNotification(_localizationService.GetResource("Widgets.ProductPictureModifier.Mapping.Created")); if (!continueEditing) { return(RedirectToAction("Configure")); } return(RedirectToAction("Edit", new { id = productAttributeMapping.Id })); }
public IActionResult Edit(ProductPictureModifierModel model, bool continueEditing) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageWidgets)) { return(AccessDeniedView()); } //todo find out why model state validation failed even though product id is only validated and model has product id if (model.ProductId < 1) { ModelState.AddModelError(nameof(model.ProductId), _localizationService.GetResource("Admin.Widgets.ProductPictureModifier.Fields.Product.Required")); return(View("~/Plugins/Widgets.ProductPictureModifier/Views/Admin/Edit.cshtml", model)); } ProductAttributeMapping productAttributeMapping = _productAttributeService. GetProductAttributeMappingById(model.EntityId); productAttributeMapping.DefaultValue = model.ColorCode; _productAttributeService.UpdateProductAttributeMapping(productAttributeMapping); //Update logo setting LogoPosition existingLogoSetting = _logoPositionService.GetByProductId(productAttributeMapping.ProductId); existingLogoSetting.ColorCode = model.ColorCode; _logoPositionService.Update(existingLogoSetting); //Clear the cache for product picture preparation _cacheManager.RemoveByPattern(string.Format(ModelCacheEventConsumer.PRODUCT_DEFAULTPICTURE_PATTERN_KEY_BY_ID, model.ProductId)); SuccessNotification(_localizationService.GetResource("Widgets.ProductPictureModifier.Mapping.Updated")); if (!continueEditing) { return(RedirectToAction("Configure")); } return(RedirectToAction("Edit", new { id = productAttributeMapping.Id })); }
public IActionResult Edit(int id) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageWidgets)) { return(AccessDeniedView()); } ProductAttributeMapping productAttributeMapping = _productAttributeService. GetProductAttributeMappingById(id); //_mediaSettings.ProductDetailsPictureSiz ProductPicture defaultProductPicture = _productPictureModifierService.GetFirstProductPicture(productAttributeMapping.ProductId); //Existing logoSetting LogoPosition existingLogoSetting = _logoPositionService.GetByProductId(productAttributeMapping.ProductId); var model = new ProductPictureModifierModel { CustomImagePath = defaultProductPicture == null ? "" : _pictureService.GetPictureUrl(defaultProductPicture.Picture), EntityId = productAttributeMapping.Id, ProductId = productAttributeMapping.ProductId, ProductName = productAttributeMapping.Product.Name, ColorCode = productAttributeMapping.DefaultValue, LogoModel = new LogoModel() { Opacity = IsLogoSettingNew(existingLogoSetting) ? ProductPictureModifierDefault.LogoOpacity : existingLogoSetting.Opacity, Size = IsLogoSettingNew(existingLogoSetting) ? ProductPictureModifierDefault.LogoSizeInPercent : existingLogoSetting.Size, XCoordinate = existingLogoSetting.XCoordinate, YCoordinate = existingLogoSetting.YCoordinate, MarkAsDefault = IsLogoSettingNew(existingLogoSetting) } }; model.LogoSearchModel.SetGridPageSize(); return(View("~/Plugins/Widgets.ProductPictureModifier/Views/Admin/Edit.cshtml", model)); }