示例#1
0
        public ActionResult Configure()
        {
            int scopeConfiguration = this.GetActiveStoreScopeConfiguration(_storeService, _workContext);

            var settings      = (WaterMarkSettings)this._settingService.LoadSetting <WaterMarkSettings>(scopeConfiguration);
            var settingsModel = new WaterMarkSettingsModel
            {
                ActiveStoreScopeConfiguration = scopeConfiguration,
                OnlyLargerThen = settings.OnlyLargerThen,
                PictureId      = settings.PictureId,
                Scale          = settings.Scale,
                Enable         = settings.Enable
            };

            foreach (WaterMarkPositions position in Enum.GetValues(typeof(WaterMarkPositions)))
            {
                settingsModel.PositionsValues.Add(new SelectListItem()
                {
                    Text     = CommonHelper.ConvertEnum(((object)position).ToString()),
                    Value    = ((object)position).ToString(),
                    Selected = ((int)position & settings.Positions) == (int)position
                });
            }

            if (scopeConfiguration > 0)
            {
                settingsModel.Enable_Override         = this._settingService.SettingExists(settings, x => x.Enable, scopeConfiguration);
                settingsModel.OnlyLargerThen_Override = this._settingService.SettingExists(settings, x => x.OnlyLargerThen,
                                                                                           scopeConfiguration);
                settingsModel.PictureId_Override = this._settingService.SettingExists(settings, x => x.PictureId,
                                                                                      scopeConfiguration);
                settingsModel.Positions_Override = this._settingService.SettingExists(settings, x => x.Positions,
                                                                                      scopeConfiguration);
                settingsModel.Scale_Override = this._settingService.SettingExists(settings, x => x.Scale,
                                                                                  scopeConfiguration);
                settingsModel.Transparency_Override = this._settingService.SettingExists(settings, x => x.Transparency,
                                                                                         scopeConfiguration);
            }

            return(View("~/Plugins/Nop.Plugin.Misc.WaterMark/Views/Settings/Configure.cshtml", settingsModel));
        }
示例#2
0
        public ActionResult Configure(WaterMarkSettingsModel model)
        {
            if (!((Controller)this).ModelState.IsValid)
            {
                return(this.Configure());
            }

            int scopeConfiguration = this.GetActiveStoreScopeConfiguration(_storeService, _workContext);

            WaterMarkSettings settings = (WaterMarkSettings)this._settingService.LoadSetting <WaterMarkSettings>(scopeConfiguration);



            var values = ((WaterMarkPositions[])Enum.GetValues(typeof(WaterMarkPositions))).Select(x => x.ToString()).ToArray();

            int removedCount = 0;


            var selectedPositions = this.HttpContext.Request.Form.AllKeys.Where(x => x.StartsWith("PositionsSelectedValues_")).Select(x => x.Replace("PositionsSelectedValues_", string.Empty)).ToArray();

            var positions = string.Join(", ", selectedPositions.ToArray());

            settings.Positions               = (int)Enum.Parse(typeof(WaterMarkPositions), positions);
            settings.Enable                  = model.Enable;
            settings.OnlyLargerThen          = model.OnlyLargerThen;
            settings.Scale                   = model.Scale;
            settings.Transparency            = model.Transparency;
            settings.PictureId               = model.PictureId;
            settings.ApplyOnCategoryPictures = model.ApplyOnCategoryPictures;
            settings.ApplyOnProductPictures  = model.ApplyOnProductPictures;
            settings.ApplyOnProductVariantAttributeValuePictures = model.ApplyOnProductVariantAttributeValuePictures;

            foreach (WaterMarkPositions position in Enum.GetValues(typeof(WaterMarkPositions)))
            {
                model.PositionsValues.Add(new SelectListItem()
                {
                    Text     = CommonHelper.ConvertEnum(((object)position).ToString()),
                    Value    = ((object)position).ToString(),
                    Selected = ((int)position & settings.Positions) == (int)position
                });
            }

            //if (!string.IsNullOrEmpty(model.Positions))
            //{
            //	settings.Positions = (WaterMarkPositions)Enum.Parse(typeof(WaterMarkPositions), model.Positions);
            //}

            if (model.Enable_Override || scopeConfiguration == 0)
            {
                _settingService.SaveSetting(settings, x => x.Enable, scopeConfiguration, false);
            }
            else if (scopeConfiguration > 0)
            {
                _settingService.DeleteSetting(settings, x => x.Enable, scopeConfiguration);
            }

            if (model.OnlyLargerThen_Override || scopeConfiguration == 0)
            {
                _settingService.SaveSetting(settings, x => x.OnlyLargerThen, scopeConfiguration, false);
            }
            else if (scopeConfiguration > 0)
            {
                _settingService.DeleteSetting(settings, x => x.OnlyLargerThen, scopeConfiguration);
            }

            if (model.Scale_Override || scopeConfiguration == 0)
            {
                _settingService.SaveSetting(settings, x => x.Scale, scopeConfiguration, false);
            }
            else if (scopeConfiguration > 0)
            {
                _settingService.DeleteSetting(settings, x => x.Scale, scopeConfiguration);
            }

            if (model.Transparency_Override || scopeConfiguration == 0)
            {
                _settingService.SaveSetting(settings, x => x.Transparency, scopeConfiguration, false);
            }
            else if (scopeConfiguration > 0)
            {
                _settingService.DeleteSetting(settings, x => x.Transparency, scopeConfiguration);
            }

            if (model.PictureId_Override || scopeConfiguration == 0)
            {
                _settingService.SaveSetting(settings, x => x.PictureId, scopeConfiguration, false);
            }
            else if (scopeConfiguration > 0)
            {
                _settingService.DeleteSetting(settings, x => x.PictureId, scopeConfiguration);
            }

            if (model.Positions_Override || scopeConfiguration == 0)
            {
                _settingService.SaveSetting(settings, x => x.Positions, scopeConfiguration, false);
            }
            else if (scopeConfiguration > 0)
            {
                _settingService.DeleteSetting(settings, x => x.Positions, scopeConfiguration);
            }

            if (model.ApplyOnCategoryPictures_Override || scopeConfiguration == 0)
            {
                _settingService.SaveSetting(settings, x => x.ApplyOnCategoryPictures, scopeConfiguration, false);
            }
            else if (scopeConfiguration > 0)
            {
                _settingService.DeleteSetting(settings, x => x.ApplyOnCategoryPictures, scopeConfiguration);
            }

            if (model.ApplyOnProductPictures_Override || scopeConfiguration == 0)
            {
                _settingService.SaveSetting(settings, x => x.ApplyOnProductPictures, scopeConfiguration, false);
            }
            else if (scopeConfiguration > 0)
            {
                _settingService.DeleteSetting(settings, x => x.ApplyOnProductPictures, scopeConfiguration);
            }

            if (model.ApplyOnProductVariantPictures_Override || scopeConfiguration == 0)
            {
                _settingService.SaveSetting(settings, x => x.ApplyOnProductVariantAttributeValuePictures, scopeConfiguration, false);
            }
            else if (scopeConfiguration > 0)
            {
                _settingService.DeleteSetting(settings, x => x.ApplyOnProductVariantAttributeValuePictures, scopeConfiguration);
            }

            this._settingService.ClearCache();
            ((NopPictureService)EngineContext.Current.Resolve <IPictureService>()).ClearThumbs();
            return(Configure());
        }