public ActionResult News(NewsSettingsModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageSettings)) return AccessDeniedView(); _newsSettings = model.ToEntity(_newsSettings); _settingService.SaveSetting(_newsSettings); //activity log _customerActivityService.InsertActivity("EditSettings", _localizationService.GetResource("ActivityLog.EditSettings")); SuccessNotification(_localizationService.GetResource("Admin.Configuration.Updated")); return RedirectToAction("News"); }
public ActionResult News(NewsSettingsModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageSettings)) return AccessDeniedView(); //load settings for a chosen store scope var storeScope = this.GetActiveStoreScopeConfiguration(_storeService, _workContext); var newsSettings = _settingService.LoadSetting<NewsSettings>(storeScope); newsSettings = model.ToEntity(newsSettings); /* 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.Enabled_OverrideForStore || storeScope == 0) _settingService.SaveSetting(newsSettings, x => x.Enabled, storeScope, false); else if (storeScope > 0) _settingService.DeleteSetting(newsSettings, x => x.Enabled, storeScope); if (model.AllowNotRegisteredUsersToLeaveComments_OverrideForStore || storeScope == 0) _settingService.SaveSetting(newsSettings, x => x.AllowNotRegisteredUsersToLeaveComments, storeScope, false); else if (storeScope > 0) _settingService.DeleteSetting(newsSettings, x => x.AllowNotRegisteredUsersToLeaveComments, storeScope); if (model.NotifyAboutNewNewsComments_OverrideForStore || storeScope == 0) _settingService.SaveSetting(newsSettings, x => x.NotifyAboutNewNewsComments, storeScope, false); else if (storeScope > 0) _settingService.DeleteSetting(newsSettings, x => x.NotifyAboutNewNewsComments, storeScope); if (model.ShowNewsOnMainPage_OverrideForStore || storeScope == 0) _settingService.SaveSetting(newsSettings, x => x.ShowNewsOnMainPage, storeScope, false); else if (storeScope > 0) _settingService.DeleteSetting(newsSettings, x => x.ShowNewsOnMainPage, storeScope); if (model.MainPageNewsCount_OverrideForStore || storeScope == 0) _settingService.SaveSetting(newsSettings, x => x.MainPageNewsCount, storeScope, false); else if (storeScope > 0) _settingService.DeleteSetting(newsSettings, x => x.MainPageNewsCount, storeScope); if (model.NewsArchivePageSize_OverrideForStore || storeScope == 0) _settingService.SaveSetting(newsSettings, x => x.NewsArchivePageSize, storeScope, false); else if (storeScope > 0) _settingService.DeleteSetting(newsSettings, x => x.NewsArchivePageSize, storeScope); if (model.ShowHeaderRssUrl_OverrideForStore || storeScope == 0) _settingService.SaveSetting(newsSettings, x => x.ShowHeaderRssUrl, storeScope, false); else if (storeScope > 0) _settingService.DeleteSetting(newsSettings, x => x.ShowHeaderRssUrl, storeScope); //now clear settings cache _settingService.ClearCache(); //activity log _customerActivityService.InsertActivity("EditSettings", _localizationService.GetResource("ActivityLog.EditSettings")); SuccessNotification(_localizationService.GetResource("Admin.Configuration.Updated")); return RedirectToAction("News"); }