/// <summary> /// Loads the current configuration. This is forced onto a single thread. /// </summary> /// <param name="forceLoad"></param> private void LoadConfiguration(bool forceLoad) { lock (_SyncLock) { if (forceLoad || _Configuration == null) { if (_ConfigurationStorage == null) { _ConfigurationListener = Factory.Resolve <IConfigurationListener>(); _ConfigurationListener.PropertyChanged += ConfigurationListener_PropertyChanged; _ConfigurationStorage = Factory.ResolveSingleton <IConfigurationStorage>(); _ConfigurationStorage.ConfigurationChanged += ConfigurationStorage_ConfigurationChanged; _Subscribers = new List <WeakReference <ISharedConfigurationSubscriber> >(); var heartbeat = Factory.ResolveSingleton <IHeartbeatService>(); heartbeat.SlowTick += HeartBeat_SlowTick; } if (_Configuration != null) { _ConfigurationListener.Release(); } var configuration = _ConfigurationStorage.Load(); _ConfigurationLoadedUtc = DateTime.UtcNow; _ConfigurationListener.Initialise(configuration); _Configuration = configuration; } } }
/// <summary> /// Loads the current configuration. This is forced onto a single thread. /// </summary> /// <param name="forceLoad"></param> private void LoadConfiguration(bool forceLoad) { lock (_SyncLock) { if (forceLoad || _Configuration == null) { if (_ConfigurationStorage == null) { _ConfigurationListener = Factory.Singleton.Resolve <IConfigurationListener>(); _ConfigurationListener.PropertyChanged += ConfigurationListener_PropertyChanged; _ConfigurationStorage = Factory.Singleton.Resolve <IConfigurationStorage>().Singleton; _ConfigurationStorage.ConfigurationChanged += ConfigurationStorage_ConfigurationChanged; } if (_Configuration != null) { _ConfigurationListener.Release(); } var configuration = _ConfigurationStorage.Load(); _ConfigurationListener.Initialise(configuration); _Configuration = configuration; } } }
public void TestInitialise() { _Configuration = new Configuration(); _Listener = Factory.Singleton.Resolve <IConfigurationListener>(); _PropertyChanged = new EventRecorder <ConfigurationListenerEventArgs>(); _Listener.PropertyChanged += _PropertyChanged.Handler; _Listener.Initialise(_Configuration); }