public IActionResult Edit(string id)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageNewsletterSubscribers))
            {
                return(AccessDeniedView());
            }

            var newsletterCategory = _newsletterCategoryService.GetNewsletterCategoryById(id);

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

            var model = newsletterCategory.ToModel();

            //locales
            AddLocales(_languageService, model.Locales, (locale, languageId) =>
            {
                locale.Name        = newsletterCategory.GetLocalized(x => x.Name, languageId, false, false);
                locale.Description = newsletterCategory.GetLocalized(x => x.Description, languageId, false, false);
            });

            //Stores
            PrepareStoresMappingModel(model, newsletterCategory, false);

            return(View(model));
        }
        public async Task <IActionResult> Edit(string id)
        {
            var newsletterCategory = await _newsletterCategoryService.GetNewsletterCategoryById(id);

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

            var model = newsletterCategory.ToModel();

            //locales
            await AddLocales(_languageService, model.Locales, (locale, languageId) =>
            {
                locale.Name        = newsletterCategory.GetTranslation(x => x.Name, languageId, false);
                locale.Description = newsletterCategory.GetTranslation(x => x.Description, languageId, false);
            });

            return(View(model));
        }
        public IActionResult Edit(string id)
        {
            var newsletterCategory = _newsletterCategoryService.GetNewsletterCategoryById(id);

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

            var model = newsletterCategory.ToModel();

            //locales
            AddLocales(_languageService, model.Locales, (locale, languageId) =>
            {
                locale.Name        = newsletterCategory.GetLocalized(x => x.Name, languageId, false, false);
                locale.Description = newsletterCategory.GetLocalized(x => x.Description, languageId, false, false);
            });

            //Stores
            model.PrepareStoresMappingModel(newsletterCategory, false, _storeService);
            return(View(model));
        }
        protected virtual string GetCategoryNames(IList <string> categoryNames, string separator = ",")
        {
            var sb = new StringBuilder();

            for (int i = 0; i < categoryNames.Count; i++)
            {
                var category = _newsletterCategoryService.GetNewsletterCategoryById(categoryNames[i]);
                if (category != null)
                {
                    sb.Append(category.Name);
                    if (i != categoryNames.Count - 1)
                    {
                        sb.Append(separator);
                        sb.Append(" ");
                    }
                }
            }
            return(sb.ToString());
        }