public DataFlow(IProgress <DataFlowStatus> progress,
                        IDataFlowFacade <IBaseTable, IPlugin, ILink> dataFlowFacade,
                        IPluginFactory pluginExecutableFactory)
        {
            this.progress       = progress;
            this.dataFlowFacade = dataFlowFacade;
            this.pluginFactory  = pluginExecutableFactory;
            this.dataFlowStatus = new DataFlowStatus();
            this.nodeProgress   = new NodeStateChangeProgress();

            this.nodeProgress.ProgressChanged += NodeProgress_ProgressChanged;
        }
        private void DataFlowProgress_ProgressChanged(object sender, DataFlowStatus e)
        {
            Console.WriteLine("-----------------------");
            _nodeStatusList = e.Nodes.ToList();
            _linkStatusList = e.Links.ToList();

            Console.WriteLine("nodes:");
            Console.WriteLine(string.Join("\n", e.Nodes.Select(x => x.ToString())));
            Console.WriteLine("links:");
            Console.WriteLine(string.Join("\n", e.Links.Select(x => x.ToString())));
            Console.WriteLine(string.Empty);
        }