Example #1
0
        /// <summary>
        /// Prepare widget zone slide model
        /// </summary>
        /// <param name="widgetZoneSlide">Widget zone slide entity</param>
        /// <returns></returns>
        public virtual WidgetZoneSlideModel PrepareEditWidgetZoneSlideModel(WidgetZoneSlide widgetZoneSlide)
        {
            var allLanguages = _languageService.GetAllLanguages(true);
            var slide        = _slideService.GetSlideById(widgetZoneSlide.SlideId);
            var picture      = _pictureService.GetPictureById(slide.PictureId.GetValueOrDefault(0));

            if (picture == null)
            {
                throw new Exception("Picture aren't exist");
            }

            var model = new WidgetZoneSlideModel()
            {
                Id                  = widgetZoneSlide.Id,
                PictureId           = picture.Id,
                PictureUrl          = _pictureService.GetPictureUrl(picture.Id, 200),
                SlideId             = slide.Id,
                DisplayOrder        = widgetZoneSlide.DisplayOrder,
                OverrideDescription = widgetZoneSlide.OverrideDescription
            };

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

            return(model);
        }
Example #2
0
        public virtual IActionResult EditWidgetZoneSlidePopup(WidgetZoneSlideModel model)
        {
            //return access denied result if customer has no permissions
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageWidgets))
            {
                return(AccessDeniedView());
            }

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

            if (widgetZoneSlide == null)
            {
                throw new Exception($"Widget zone slide with '{model.Id}' id aren't exist");
            }

            //apply values
            widgetZoneSlide.DisplayOrder        = model.DisplayOrder;
            widgetZoneSlide.OverrideDescription = model.OverrideDescription;

            //save localizaed values
            foreach (var locale in model.Locales)
            {
                _localizedEntityService.SaveLocalizedValue(widgetZoneSlide, x => x.OverrideDescription, locale.OverrideDescription, locale.LanguageId);
            }

            //update widget zone slide
            _widgetZoneSlideService.UpdateWidgetZoneSlide(widgetZoneSlide);

            //close popup window
            ViewBag.RefreshPage = true;

            return(EditWidgetZoneSlidePopup(model.Id));
        }