public IDisposable Subscribe(IGraphicsProviderObserver observer) { if (!_observers.Contains(observer)) { _observers.Add(observer); // Provide observer with existing data. var graphics = _cache.GetGraphics(observer.LayerId); foreach (var singleGraphic in graphics) { observer.OnPublish(singleGraphic); } } return(new GraphicsProviderUnsubscriber(_observers, observer)); }
public GraphicsProviderUnsubscriber(List <IGraphicsProviderObserver> observers, IGraphicsProviderObserver observer) { _observers = observers; _observer = observer; }