/// <summary>
 /// Called when the provider should save the configuration it is managing.
 /// </summary>
 public virtual void Save()
 {
     ConfigurationProvidersManager.WriteConfiguration(
         CarbonConfig.Verbose,
         this.FullPath,
         this.Configuration,
         this.GetEncryptionEngine());
 }
        /// <summary>
        /// Called when the provider should load the configuration it is managing.
        /// </summary>
        public virtual void Load(IProgressViewer progressViewer)
        {
            // read or create the local user configuration
            ProgressViewer.SetExtendedDescription(progressViewer, string.Format("Loading '{0}' configuration...", this.ConfigurationName));

            ConfigurationProvidersManager.ReadOrCreateConfiguration(
                CarbonConfig.Verbose,
                this.ConfigurationName,
                this.FullPath,
                out _configuration,
                this.GetEncryptionEngine(),
                this.FormatConfiguration);

            if (this.Configuration != null)
            {
                this.Configuration.TimeToSave += new EventHandler(OnConfigurationTimeToSave);

                // by default we'll add this to the list so that the configuration shows up in the options dialog
                ConfigurationProvidersManager.EnumeratingConfigurations += new EventHandler <XmlConfigurationManagerEventArgs>(OnConfigurationProvidersManagerEnumeratingConfigurations);
            }
        }