Esempio n. 1
0
        public ActionResult Configure()
        {
            //load settings for a chosen store scope
            var storeScope = this.GetActiveStoreScopeConfiguration(_storeService, _workContext);
            var robokassaSettings = _settingService.LoadSetting<RobokassaSettings>(storeScope);

            var model = new ConfigurationModel();
            model.HttpContext = _httpContext;
            model.ApiURL = robokassaSettings.ApiURL;
            model.Login = robokassaSettings.Login;
            model.Password1 = robokassaSettings.Password1;
            model.Password2 = robokassaSettings.Password2;
            model.PaymentDescription = robokassaSettings.PaymentDescription;

            model.ActiveStoreScopeConfiguration = storeScope;
            if (storeScope > 0)
            {
                model.ApiURL_OverrideForStore = _settingService.SettingExists(robokassaSettings, x => x.ApiURL, storeScope);
                model.Login_OverrideForStore = _settingService.SettingExists(robokassaSettings, x => x.Login, storeScope);
                model.Password1_OverrideForStore = _settingService.SettingExists(robokassaSettings, x => x.Password1, storeScope);
                model.Password2_OverrideForStore = _settingService.SettingExists(robokassaSettings, x => x.Password2, storeScope);
                model.PaymentDescription_OverrideForStore = _settingService.SettingExists(robokassaSettings, x => x.PaymentDescription, storeScope);
            }

            return View("~/Plugins/Payments.Robokassa/Views/PaymentRobokassa/Configure.cshtml", model);
        }
Esempio n. 2
0
        public ActionResult Configure(ConfigurationModel model)
        {
            model.HttpContext = _httpContext;
            if (!ModelState.IsValid)
                return Configure();

            //load settings for a chosen store scope
            var storeScope = this.GetActiveStoreScopeConfiguration(_storeService, _workContext);
            var robokassaSettings = _settingService.LoadSetting<RobokassaSettings>(storeScope);

            robokassaSettings.ApiURL = model.ApiURL;
            robokassaSettings.Login = model.Login;
            robokassaSettings.Password1 = model.Password1;
            robokassaSettings.Password2 = model.Password2;
            robokassaSettings.PaymentDescription = model.PaymentDescription;

            /* We do not clear cache after each setting update.
             * This behavior can increase performance because cached settings will not be cleared 
             * and loaded from database after each update */
            if (model.ApiURL_OverrideForStore || storeScope == 0)
                _settingService.SaveSetting(robokassaSettings, x => x.ApiURL, storeScope, false);
            else if (storeScope > 0)
                _settingService.DeleteSetting(robokassaSettings, x => x.ApiURL, storeScope);

            if (model.Login_OverrideForStore || storeScope == 0)
                _settingService.SaveSetting(robokassaSettings, x => x.Login, storeScope, false);
            else if (storeScope > 0)
                _settingService.DeleteSetting(robokassaSettings, x => x.Login, storeScope);

            if (model.Password1_OverrideForStore || storeScope == 0)
                _settingService.SaveSetting(robokassaSettings, x => x.Password1, storeScope, false);
            else if (storeScope > 0)
                _settingService.DeleteSetting(robokassaSettings, x => x.Password1, storeScope);

            if (model.Password2_OverrideForStore || storeScope == 0)
                _settingService.SaveSetting(robokassaSettings, x => x.Password2, storeScope, false);
            else if (storeScope > 0)
                _settingService.DeleteSetting(robokassaSettings, x => x.Password2, storeScope);

            if (model.PaymentDescription_OverrideForStore || storeScope == 0)
                _settingService.SaveSetting(robokassaSettings, x => x.PaymentDescription, storeScope, false);
            else if (storeScope > 0)
                _settingService.DeleteSetting(robokassaSettings, x => x.PaymentDescription, storeScope);

            //now clear settings cache
            _settingService.ClearCache();

            return Configure();
        }