private List <CustomDataSourceExecutor> CreateExecutors(
            Dictionary <ICustomDataSource, List <List <string> > > allFileAssociations)
        {
            var executors = new List <CustomDataSourceExecutor>();

            foreach (var kvp in allFileAssociations)
            {
                try
                {
                    var cds       = kvp.Key;
                    var fileLists = kvp.Value;

                    foreach (var files in fileLists)
                    {
                        var executionContext = new SDK.Runtime.ExecutionContext(
                            new DataProcessorProgress(),
                            x => ConsoleLogger.Create(x.GetType()),
                            cds,
                            files.Select(x => new FileDataSource(x)),
                            cds.DataTables.Concat(cds.MetadataTables),
                            new RuntimeProcessorEnvironment(this.repository),
                            ProcessorOptions.Default);

                        var executor = new CustomDataSourceExecutor();
                        executor.InitializeCustomDataProcessor(executionContext);

                        executors.Add(executor);
                    }
                }
                catch (Exception e)
                {
                    //
                    // todo: log
                    //

                    Console.Error.WriteLine(e);
                }
            }

            return(executors);
        }
 public void Initialize()
 {
     this.Cts = new CancellationTokenSource();
     this.Sut = new CustomDataSourceExecutor();
 }