Create the settings contract

The next step is to create the settings contract. It is a class implementing ISettingsDataContract and provides the functionality to save settings and load the default value of the settings.

To do this, perform the following:

  1. Create a class and name it****MyCustomSettingsContract.cs
  2. Inside paste the following code:
    C#
    using System;
    using System.Runtime.Serialization;
    using Telerik.Sitefinity.Configuration;
    using Telerik.Sitefinity.SiteSettings;
    
    namespace SitefinityWebApp.CustomSettings
    {
        [DataContract]
        public class MyCustomSettingsContract : ISettingsDataContract
        {
            [DataMember]
            public string RandomVariable
            {
                get;
                set;
            }
    
            public void LoadDefaults(bool forEdit = false)
            {
                MyConfig section;
                if (forEdit)
                    section = ConfigManager.GetManager().GetSection<MyConfig>();
                else
                    section = Config.Get<MyConfig>();
    
                String randVariable = section.UIRandomVariableSettings.CurrentRandomVariable ?? "-1";
    
                this.RandomVariable = randVariable;
            }
    
            public void SaveDefaults()
            {
                var manager = ConfigManager.GetManager();
                var section = manager.GetSection<MyConfig>();
                section.UIRandomVariableSettings.CurrentRandomVariable = this.RandomVariable;
                manager.SaveSection(section);
            }
        }
    }

NOTE: The contract has property RandomVariable that persists in the configuration file and saves the value in method SaveDefaults(). For that purpose, you use the API for working with configuration files.

Want to learn more?
Enhance your Sitefinity skills by enrolling in free training sessions. Become Sitefinity certified through Progress Education Community to strengthen your professional credentials.
New to Sitefinity?