/// <summary> /// Called by the client to save the updated settings. /// </summary> /// <param name="context"></param> /// <param name="key"></param> /// <param name="itemType"></param> /// <param name="siteId"></param> /// <param name="inheritanceState"></param> public void SaveSettings(SettingsItemContext context, string key, string itemType, string siteId, string inheritanceState) { ServiceUtility.RequestBackendUserAuthentication(); if (itemType == null) { throw new ArgumentNullException("itemType"); } Guid id = Guid.Empty; if (!string.IsNullOrEmpty(siteId)) { id = Guid.Parse(siteId); } if (SystemManager.CurrentContext.IsMultisiteMode && id != Guid.Empty) { if (!string.IsNullOrEmpty(inheritanceState) && inheritanceState == "inherit") { // delete site specific settings var logger = LoggerFactory.Instance(); var settingsHelper = new GigyaSitefinityDsSettingsHelper(logger); settingsHelper.Delete(id); settingsHelper.ClearCache(id); return; } } IGigyaDSSettingsDataContract settingsDataContract = (IGigyaDSSettingsDataContract)context.Item; settingsDataContract.Save(id); }
public SiteSettingsHelper() { var basicSettingsSerivce = new BasicSettingsService(); var multiSiteContext = new MultisiteContext(); var currSite = multiSiteContext.CurrentSite; SettingsItemContext siteSetting = null; SystemManager.RunWithElevatedPrivilege(d => { siteSetting = basicSettingsSerivce.GetSettings(_itemType, currSite.Id.ToString()); }); if (siteSetting != null) { _siteSettingsContract = (CustomSiteSettingsContract)siteSetting.Item; } }