private void SendRecentlyUsedDirectories(IRecentlyUsedFoldersObserver observer) { using (var logger = _logger.Block()) { logger.Trace("Notifying observer to clear list..."); observer.OnClear(); logger.Trace("Notifying observer of current state..."); foreach (var directory in _recentlyUsedDirectories) { logger.Trace($@"Notifying observer of ""{directory}""..."); observer.OnNext(directory); } } }
public IDisposable Subscribe(IRecentlyUsedFoldersObserver observer) { using (var logger = _logger.Block()) { logger.Trace("Checking if observer is already subscribed..."); if (_observers.Contains(observer)) { return(new Unsubscriber <IRecentlyUsedFoldersObserver>(_observers, observer)); } logger.Trace("Observer is not subscribed. Subscribing..."); _observers.Add(observer); SendRecentlyUsedDirectories(observer); return(new Unsubscriber <IRecentlyUsedFoldersObserver>(_observers, observer)); } }