示例#1
0
        public virtual IActionResult EditSlideWidgetZonePopup(EditSlideWidgetZoneModel model)
        {
            //redirect customer on accessdenied view, if client has no permissions
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageWidgets))
            {
                return(AccessDeniedView());
            }

            var slideWidgetZone = _widgetZoneSlideService.GetWidgetZoneSlide(model.Id);

            if (slideWidgetZone == null)
            {
                throw new Exception($"Slide widget zone by id: '{model.Id}' aren't exist");
            }

            //change entity properties
            slideWidgetZone.WidgetZoneId        = model.WidgetZoneId;
            slideWidgetZone.OverrideDescription = model.OverrideDescription;

            //update localized values
            foreach (var locale in model.Locales)
            {
                _localizedEntityService.SaveLocalizedValue(slideWidgetZone, x => x.OverrideDescription, locale.OverrideDescription, locale.LanguageId);
            }

            //update entity
            _widgetZoneSlideService.UpdateWidgetZoneSlide(slideWidgetZone);

            //close popup window
            ViewBag.RefreshPage = true;

            return(EditSlideWidgetZonePopup(model.Id));
        }
        /// <summary>
        /// Prepare edit slide widget zone edit model
        /// </summary>
        /// <param name="widgetZoneSlide">Widget zone slide entity</param>
        /// <returns>Edit slide widget zone model</returns>
        public virtual EditSlideWidgetZoneModel PrepareEditSlideWidgetZoneModel(WidgetZoneSlide widgetZoneSlide)
        {
            var allLanguages   = _languageService.GetAllLanguages();
            var allWidgetZones = _widgetZoneService.GetWidgetZones();
            var model          = new EditSlideWidgetZoneModel()
            {
                Id = widgetZoneSlide.Id,
                AvailableWidgetZones = allWidgetZones.Select(widgetZone =>
                {
                    return(new SelectListItem()
                    {
                        Value = widgetZone.Id.ToString(),
                        Text = $"{widgetZone.Name}({widgetZone.SystemName})"
                    });
                }).ToList(),
                SlideId             = widgetZoneSlide.SlideId,
                WidgetZoneId        = widgetZoneSlide.WidgetZoneId,
                OverrideDescription = widgetZoneSlide.OverrideDescription
            };

            //add locales
            foreach (var language in allLanguages)
            {
                model.Locales.Add(new EditSlideWidgetZoneModel.LocalizationModel()
                {
                    LanguageId          = language.Id,
                    OverrideDescription = _localizationService.GetLocalized(widgetZoneSlide, x => x.OverrideDescription, language.Id)
                });
            }

            return(model);
        }