private void IdentifyCompatiblePipelines() { gbPickPipeline.Enabled = true; ragSmileyFile.Reset(); _context = new DataFlowPipelineContextFactory <DataTable>().Create(PipelineUsage.LoadsSingleFlatFile); _context.MustHaveDestination = typeof(DataTableUploadDestination); if (cbOther.Checked) { _context.MustHaveSource = typeof(IDataFlowSource <DataTable>); } else if (_selectedFile.Extension == ".csv" || _selectedFile.Extension == ".txt") { _context.MustHaveSource = typeof(DelimitedFlatFileDataFlowSource); } else if (_selectedFile.Extension.StartsWith(".xls")) { _context.MustHaveSource = typeof(ExcelDataFlowSource); } var compatiblePipelines = Activator.RepositoryLocator.CatalogueRepository.GetAllObjects <Pipeline>().Where(_context.IsAllowable).ToArray(); if (compatiblePipelines.Length == 0) { ragSmileyFile.OnCheckPerformed(new CheckEventArgs("No Pipelines are compatible with the selected file", CheckResult.Fail)); return; } ddPipeline.DataSource = compatiblePipelines; ddPipeline.SelectedItem = compatiblePipelines.FirstOrDefault(); }
/// <summary> /// Creates a new pipeline engine ready to run under the <paramref name="context"/> recording events that occur to <paramref name="listener"/>. /// </summary> /// <param name="context"></param> /// <param name="source"></param> /// <param name="destination"></param> /// <param name="listener"></param> /// <param name="pipelineSource"></param> public DataFlowPipelineEngine(DataFlowPipelineContext <T> context, IDataFlowSource <T> source, IDataFlowDestination <T> destination, IDataLoadEventListener listener, IPipeline pipelineSource = null) { Source = source; Destination = destination; _context = context; _listener = listener; ComponentObjects = new List <object>(); if (pipelineSource != null) { _name = pipelineSource.Name; } else { _name = "Undefined pipeline"; } }