public static void ReloadConfigFile()
 {
     if(System.IO.File.Exists (FullConfigPath))
     {
         ConfigSource = new IniConfigSource (FullConfigPath);
         ConfigSource.Reload ();
     }
     else
     {
         logger.Warn ("Конфигурационный фаил {0} не найден. Конфигурация не загружена.");
         ConfigSource = new IniConfigSource ();
         ConfigSource.Save (FullConfigPath);
     }
 }
        public void Reload()
        {
            string filePath = "Reload.ini";

            // Create the original source file
            IniConfigSource source = new IniConfigSource ();

            IConfig petConfig = source.AddConfig ("Pets");
            petConfig.Set ("cat", "Muffy");
            petConfig.Set ("dog", "Rover");
            IConfig weatherConfig = source.AddConfig ("Weather");
            weatherConfig.Set ("skies", "cloudy");
            weatherConfig.Set ("precipitation", "rain");
            source.Save (filePath);

            Assert.AreEqual (2, petConfig.GetKeys ().Length);
            Assert.AreEqual ("Muffy", petConfig.Get ("cat"));
            Assert.AreEqual (2, source.Configs.Count);

            // Create another source file to set values and reload
            IniConfigSource newSource = new IniConfigSource (filePath);

            IConfig compareConfig = newSource.Configs["Pets"];
            Assert.AreEqual (2, compareConfig.GetKeys ().Length);
            Assert.AreEqual ("Muffy", compareConfig.Get ("cat"));
            Assert.IsTrue (compareConfig == newSource.Configs["Pets"],
                            "References before are not equal");

            // Set the new values to source
            source.Configs["Pets"].Set ("cat", "Misha");
            source.Configs["Pets"].Set ("lizard", "Lizzy");
            source.Configs["Pets"].Set ("hampster", "Surly");
            source.Configs["Pets"].Remove ("dog");
            source.Configs.Remove (weatherConfig);
            source.Save (); // saves new value

            // Reload the new source and check for changes
            newSource.Reload ();
            Assert.IsTrue (compareConfig == newSource.Configs["Pets"],
                            "References after are not equal");
            Assert.AreEqual (1, newSource.Configs.Count);
            Assert.AreEqual (3, newSource.Configs["Pets"].GetKeys ().Length);
            Assert.AreEqual ("Lizzy", newSource.Configs["Pets"].Get ("lizard"));
            Assert.AreEqual ("Misha", newSource.Configs["Pets"].Get ("cat"));
            Assert.IsNull (newSource.Configs["Pets"].Get ("dog"));

            File.Delete (filePath);
        }
        public void ConfigSourceEvents()
        {
            string filePath = "EventTest.ini";
            IniConfigSource source = new IniConfigSource ();
            source.Saved += new EventHandler (this.source_saved);
            source.Reloaded += new EventHandler (this.source_reloaded);

            Assert.IsNull (eventConfig);
            Assert.IsNull (eventSource);

            IConfig config = source.AddConfig ("Test");

            eventSource = null;
            Assert.AreEqual (savedCount, 0);
            source.Save (filePath);
            Assert.AreEqual (savedCount, 1);
            Assert.IsTrue (source == eventSource);

            eventSource = null;
            source.Save ();
            Assert.AreEqual (savedCount, 2);
            Assert.IsTrue (source == eventSource);

            eventSource = null;
            Assert.AreEqual (reloadedCount, 0);
            source.Reload ();
            Assert.AreEqual (reloadedCount, 1);
            Assert.IsTrue (source == eventSource);

            File.Delete (filePath);
        }