Пример #1
0
        public VJeekPictureService(IRepository <Picture> pictureRepository,
                                   IRepository <ProductPicture> productPictureRepository,
                                   ISettingService settingService, IWebHelper webHelper,
                                   ILogger logger, IEventPublisher eventPublisher,
                                   MediaSettings mediaSettings, IStoreContext storeContext, IRepository <ProductVariantAttributeValue> productVariantAttiributeValueRepository, IRepository <Category> categoryRepository)
            : base(pictureRepository, productPictureRepository, settingService, webHelper, logger, eventPublisher, mediaSettings)
        {
            _eventPublisher           = eventPublisher;
            _logger                   = logger;
            _mediaSettings            = mediaSettings;
            _pictureRepository        = pictureRepository;
            _productPictureRepository = productPictureRepository;
            _settingService           = settingService;
            _storeContext             = storeContext;
            _webHelper                = webHelper;
            _categoryRepository       = categoryRepository;
            _productVariantAttiributeValueRepository = productVariantAttiributeValueRepository;

            this._settings = (WaterMarkSettings)this._settingService.LoadSetting <WaterMarkSettings>(_storeContext.CurrentStore.Id);

            var waterMarkPicture = this.GetPictureById(this._settings.PictureId);

            if (waterMarkPicture == null || waterMarkPicture.PictureBinary == null)
            {
                return;
            }
            using (MemoryStream ms = new MemoryStream(waterMarkPicture.PictureBinary))
            {
                if (ms.Length <= 0)
                {
                    return;
                }
                this._waterMarkImage = Image.FromStream(ms);
            }
        }
Пример #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());
        }