public IDataSubscribable GetDataSource(IDataSubscriber forWorker)
        {
            var argType = forWorker.GetType().GenericTypeArguments.FirstOrDefault();

            var imp = _typeFinder.GetImplementation <IDataSubscribable>(
                argType, GetAllPublishers());

            return(imp);
        }
        public IDataSubscribable <TWorkItem> GetDataSource <TWorkItem>()
        {
            var tWork = typeof(TWorkItem);

            var imp = _typeFinder.GetImplementation <IDataSubscribable>(tWork,
                                                                        _openFuncs.OfType <IEnumerable>());

            if (imp == null)
            {
                imp = _typeFinder.GetImplementation <IDataSubscribable>(tWork,
                                                                        _connectedFuncs.OfType <IEnumerable>());
            }

            return(imp as IDataSubscribable <TWorkItem>);
        }