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();
        }
Example #2
0
        /// <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";
            }
        }