Exemple #1
0
 public bool ApplyNewConfig(ApplicationConfig newConfig, bool force)
 {
     CodeContract.Requires(newConfig != null);
     if (!force && Config.Equals(newConfig))
     {
         return(false);
     }
     Logger.LogVerbose("Применение новой конфигурации...");
     Config = newConfig;
     foreach (SubsystemConfig subsystemConfig in Config.Subsystems)
     {
         var subsystemName = subsystemConfig.SubsystemName;
         try
         {
             var subsystem = GetSubsystem(subsystemName);
             subsystem.ApplyNewConfig(subsystemConfig);
             Logger.LogVerbose("Выполнена переинициализация подсистемы {0}", subsystemName);
         }
         catch (Exception ex)
         {
             Logger.LogException("Ошибка переинициализации подсистемы {0}: {1}", ex, subsystemName, ex.Message);
             throw new Exception("Ошибка переинициализации подсистемы " + subsystemName, ex);
         }
     }
     return(true);
 }