Exemple #1
0
        /// <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);
            }
        }
Exemple #2
0
        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);
                }
            }
        }