public virtual void AssignDataSources(ISeriesProcessor processor) { if (processor.HasDataSource) { return; } var subscribingTo = _typeFinder.GetGenericImplementations <IDataSubscriber>(processor); var implementations = _typeFinder.GetImplementations <IDataSubscribable>( subscribingTo, GetAll()); foreach (var impl in implementations) { impl.AddSubscriber(processor); } }