/// <summary> /// Use for Batch Updates of Settings within an Area /// </summary> /// <param name="area"></param> /// <param name="areaSettings"></param> public void UpdateArea(string area, Dictionary <string, string> areaSettings) { if (Tracker.Current == null) { Tracker.StartTracking(); } try { using (XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient()) { var contact = EnsureContact(client); if (contact != null) { var userSettings = contact.GetFacet <Foundation.Facets.UserSettings>(); if (userSettings == null) { userSettings = new Facets.UserSettings(); } if (userSettings.Settings.ContainsKey(area)) { userSettings.Settings.Remove(area); } userSettings.Settings.Add(area, areaSettings); client.SetFacet(contact, FacetNames.UserSettings, userSettings); client.Submit(); } } } catch (XdbExecutionException ex) { // Manage conflicts / exceptions Sitecore.Diagnostics.Log.Error("Error SAving Custom UserSettings Facet", ex, this); } }
public string this[string key, string area] { get { if (Tracker.Current == null) { Tracker.StartTracking(); } try { var userSettings = GetUserSettings(); if (userSettings == null || !userSettings.Settings.ContainsKey(area)) { return(string.Empty); } var areaSettings = userSettings.Settings[area]; if (areaSettings != null) { if (!areaSettings.ContainsKey(key)) { return(string.Empty); } return(areaSettings[key]); } } catch (XdbExecutionException ex) { // Manage conflicts / exceptions Sitecore.Diagnostics.Log.Error("Error Fetching Custom UserSettings Facet", ex, this); } return(string.Empty); } set { if (Tracker.Current == null) { Tracker.StartTracking(); } try { using (XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient()) { Contact contact = EnsureContact(client); if (contact != null) { var userSettings = contact.GetFacet <Foundation.Facets.UserSettings>(); if (userSettings == null) { userSettings = new Facets.UserSettings(); } if (!userSettings.Settings.ContainsKey(area)) { userSettings.Settings.Add(area, new Dictionary <string, string>()); } var areaSettings = userSettings.Settings[area]; if (areaSettings != null) { if (!areaSettings.ContainsKey(key)) { areaSettings.Add(key, value); } else { areaSettings[key] = value; } client.SetFacet(contact, FacetNames.UserSettings, userSettings); client.Submit(); } } } } catch (XdbExecutionException ex) { // Manage conflicts / exceptions Sitecore.Diagnostics.Log.Error("Error SAving Custom UserSettings Facet", ex, this); } } }