/// <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); }
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)); }