public ActionResult Configure() { //load settings for a chosen store scope var storeScope = this.GetActiveStoreScopeConfiguration(_storeService, _workContext); var googleAnalyticsSettings = _settingService.LoadSetting<GoogleAnalyticsSettings>(storeScope); var model = new ConfigurationModel(); model.GoogleId = googleAnalyticsSettings.GoogleId; model.TrackingScript = googleAnalyticsSettings.TrackingScript; model.EcommerceScript = googleAnalyticsSettings.EcommerceScript; model.EcommerceDetailScript = googleAnalyticsSettings.EcommerceDetailScript; model.ActiveStoreScopeConfiguration = storeScope; if (storeScope > 0) { model.GoogleId_OverrideForStore = _settingService.SettingExists(googleAnalyticsSettings, x => x.GoogleId, storeScope); model.TrackingScript_OverrideForStore = _settingService.SettingExists(googleAnalyticsSettings, x => x.TrackingScript, storeScope); model.EcommerceScript_OverrideForStore = _settingService.SettingExists(googleAnalyticsSettings, x => x.EcommerceScript, storeScope); model.EcommerceDetailScript_OverrideForStore = _settingService.SettingExists(googleAnalyticsSettings, x => x.EcommerceDetailScript, storeScope); } return View("Nas.Plugin.Widgets.GoogleAnalytics.Views.WidgetsGoogleAnalytics.Configure", model); }
public ActionResult Configure(ConfigurationModel model) { //load settings for a chosen store scope var storeScope = this.GetActiveStoreScopeConfiguration(_storeService, _workContext); var googleAnalyticsSettings = _settingService.LoadSetting<GoogleAnalyticsSettings>(storeScope); googleAnalyticsSettings.GoogleId = model.GoogleId; googleAnalyticsSettings.TrackingScript = model.TrackingScript; googleAnalyticsSettings.EcommerceScript = model.EcommerceScript; googleAnalyticsSettings.EcommerceDetailScript = model.EcommerceDetailScript; /* 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.GoogleId_OverrideForStore || storeScope == 0) _settingService.SaveSetting(googleAnalyticsSettings, x => x.GoogleId, storeScope, false); else if (storeScope > 0) _settingService.DeleteSetting(googleAnalyticsSettings, x => x.GoogleId, storeScope); if (model.TrackingScript_OverrideForStore || storeScope == 0) _settingService.SaveSetting(googleAnalyticsSettings, x => x.TrackingScript, storeScope, false); else if (storeScope > 0) _settingService.DeleteSetting(googleAnalyticsSettings, x => x.TrackingScript, storeScope); if (model.EcommerceScript_OverrideForStore || storeScope == 0) _settingService.SaveSetting(googleAnalyticsSettings, x => x.EcommerceScript, storeScope, false); else if (storeScope > 0) _settingService.DeleteSetting(googleAnalyticsSettings, x => x.EcommerceScript, storeScope); if (model.EcommerceDetailScript_OverrideForStore || storeScope == 0) _settingService.SaveSetting(googleAnalyticsSettings, x => x.EcommerceDetailScript, storeScope, false); else if (storeScope > 0) _settingService.DeleteSetting(googleAnalyticsSettings, x => x.EcommerceDetailScript, storeScope); //now clear settings cache _settingService.ClearCache(); return Configure(); }