private void PrepareProductAttributeOptionModel(ProductAttributeOptionModel model, ProductAttributeOption option)
        {
            // TODO: DRY, similar code in ProductController (ProductAttributeValueList, ProductAttributeValueEditPopup...)
            if (option != null)
            {
                model.NameString             = Server.HtmlEncode(option.Color.IsEmpty() ? option.Name : $"{option.Name} - {option.Color}");
                model.PriceAdjustmentString  = (option.ValueType == ProductVariantAttributeValueType.Simple ? option.PriceAdjustment.ToString("G29") : "");
                model.WeightAdjustmentString = (option.ValueType == ProductVariantAttributeValueType.Simple ? option.WeightAdjustment.ToString("G29") : "");
                model.TypeName      = option.ValueType.GetLocalizedEnum(Services.Localization, Services.WorkContext);
                model.TypeNameClass = (option.ValueType == ProductVariantAttributeValueType.ProductLinkage ? "fa fa-link mr-2" : "d-none hide hidden-xs-up");

                var linkedProduct = _productService.GetProductById(option.LinkedProductId);
                if (linkedProduct != null)
                {
                    model.LinkedProductName          = linkedProduct.GetLocalized(p => p.Name);
                    model.LinkedProductTypeName      = linkedProduct.GetProductTypeLabel(Services.Localization);
                    model.LinkedProductTypeLabelHint = linkedProduct.ProductTypeLabelHint;

                    if (model.Quantity > 1)
                    {
                        model.QuantityInfo = $" × {model.Quantity}";
                    }
                }

                AddLocales(_languageService, model.Locales, (locale, languageId) =>
                {
                    locale.Name  = option.GetLocalized(x => x.Name, languageId, false, false);
                    locale.Alias = option.GetLocalized(x => x.Alias, languageId, false, false);
                });
            }
        }
        public ActionResult OptionCreatePopup(string btnId, string formId, ProductAttributeOptionModel model)
        {
            if (ModelState.IsValid)
            {
                var entity = model.ToEntity();

                try
                {
                    _productAttributeService.InsertProductAttributeOption(entity);
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("", ex.Message);
                    return(View(model));
                }

                try
                {
                    UpdateOptionLocales(entity, model);
                }
                catch { }

                ViewBag.RefreshPage = true;
                ViewBag.btnId       = btnId;
                ViewBag.formId      = formId;
            }

            return(View(model));
        }
        public ActionResult OptionEditPopup(string btnId, string formId, ProductAttributeOptionModel model)
        {
            var entity = _productAttributeService.GetProductAttributeOptionById(model.Id);

            if (entity == null)
            {
                return(RedirectToAction("List"));
            }

            if (ModelState.IsValid)
            {
                entity = model.ToEntity(entity);
                entity.LinkedProductId = entity.ValueType == ProductVariantAttributeValueType.Simple ? 0 : model.LinkedProductId;

                try
                {
                    _productAttributeService.UpdateProductAttributeOption(entity);

                    UpdateOptionLocales(entity, model);
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("", ex.Message);
                    return(View(model));
                }

                ViewBag.RefreshPage = true;
                ViewBag.btnId       = btnId;
                ViewBag.formId      = formId;
            }

            return(View(model));
        }
        public ActionResult OptionCreatePopup(int id)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageCatalog))
            {
                return(AccessDeniedView());
            }

            var optionsSet = _productAttributeService.GetProductAttributeOptionsSetById(id);

            if (optionsSet == null)
            {
                return(RedirectToAction("List"));
            }

            var model = new ProductAttributeOptionModel
            {
                ProductAttributeOptionsSetId = id,
                Color    = string.Empty,
                Quantity = 1
            };

            PrepareProductAttributeOptionModel(model, null);
            AddLocales(_languageService, model.Locales);

            return(View(model));
        }
Beispiel #5
0
        public ActionResult OptionEditPopup(string btnId, string formId, ProductAttributeOptionModel model)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageCatalog))
            {
                return(AccessDeniedView());
            }

            var sao = _productAttributeService.GetProductAttributeOptionById(model.Id);

            if (sao == null)
            {
                throw new ArgumentException("No product attribute option found with the specified id");
            }
            if (ModelState.IsValid)
            {
                sao = model.ToEntity(sao);
                _productAttributeService.UpdateProductAttributeOption(sao);

                UpdateOptionLocales(sao, model);

                ViewBag.RefreshPage = true;
                ViewBag.btnId       = btnId;
                ViewBag.formId      = formId;
                return(View(model));
            }

            //If we got this far, something failed, redisplay form
            return(View(model));
        }
Beispiel #6
0
        //create
        public ActionResult OptionCreatePopup(int productAttributeId)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageCatalog))
            {
                return(AccessDeniedView());
            }

            var model = new ProductAttributeOptionModel();

            model.ProductAttributeId = productAttributeId;
            //locales
            AddLocales(_languageService, model.Locales);
            return(View(model));
        }
        public ActionResult OptionCreatePopup(int id)
        {
            var optionsSet = _productAttributeService.GetProductAttributeOptionsSetById(id);

            if (optionsSet == null)
            {
                return(RedirectToAction("List"));
            }

            var model = new ProductAttributeOptionModel
            {
                ProductAttributeOptionsSetId = id,
                Color    = string.Empty,
                Quantity = 1
            };

            PrepareProductAttributeOptionModel(model, null);
            AddLocales(_languageService, model.Locales);

            return(View(model));
        }
        public ActionResult OptionEditPopup(string btnId, string formId, ProductAttributeOptionModel model)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageCatalog))
            {
                return(AccessDeniedView());
            }

            var entity = _productAttributeService.GetProductAttributeOptionById(model.Id);

            if (entity == null)
            {
                return(RedirectToAction("List"));
            }

            if (ModelState.IsValid)
            {
                entity = model.ToEntity(entity);
                entity.LinkedProductId = entity.ValueType == ProductVariantAttributeValueType.Simple ? 0 : model.LinkedProductId;

                MediaHelper.UpdatePictureTransientStateFor(entity, m => m.PictureId);

                try
                {
                    _productAttributeService.UpdateProductAttributeOption(entity);

                    UpdateOptionLocales(entity, model);
                }
                catch (Exception exception)
                {
                    ModelState.AddModelError("", exception.Message);
                    return(View(model));
                }

                ViewBag.RefreshPage = true;
                ViewBag.btnId       = btnId;
                ViewBag.formId      = formId;
            }

            return(View(model));
        }
        public ActionResult OptionCreatePopup(string btnId, string formId, ProductAttributeOptionModel model)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageCatalog))
            {
                return(AccessDeniedView());
            }

            if (ModelState.IsValid)
            {
                var entity = model.ToEntity();

                MediaHelper.UpdatePictureTransientStateFor(entity, m => m.PictureId);

                try
                {
                    _productAttributeService.InsertProductAttributeOption(entity);
                }
                catch (Exception exception)
                {
                    ModelState.AddModelError("", exception.Message);
                    return(View(model));
                }

                try
                {
                    UpdateOptionLocales(entity, model);
                }
                catch (Exception)
                {
                    // TODO: what?
                }

                ViewBag.RefreshPage = true;
                ViewBag.btnId       = btnId;
                ViewBag.formId      = formId;
            }

            return(View(model));
        }
 private void UpdateOptionLocales(ProductAttributeOption productAttributeOption, ProductAttributeOptionModel model)
 {
     foreach (var localized in model.Locales)
     {
         _localizedEntityService.SaveLocalizedValue(productAttributeOption, x => x.Name, localized.Name, localized.LanguageId);
         _localizedEntityService.SaveLocalizedValue(productAttributeOption, x => x.Alias, localized.Alias, localized.LanguageId);
     }
 }
 public static ProductAttributeOption ToEntity(this ProductAttributeOptionModel model, ProductAttributeOption destination)
 {
     return(Mapper.Map(model, destination));
 }
 public static ProductAttributeOption ToEntity(this ProductAttributeOptionModel model)
 {
     return(Mapper.Map <ProductAttributeOptionModel, ProductAttributeOption>(model));
 }
Beispiel #13
0
 public static ProductAttributeOption ToEntity(this ProductAttributeOptionModel model, ProductAttributeOption entity)
 {
     MapperFactory.Map(model, entity);
     return(entity);
 }