Ejemplo n.º 1
0
        internal ScalingSequentialPipeline(PipelineContext context)
        {
            m_Pause            = new ManualResetEvent(true);
            m_LatestPauseState = false;
            m_DummyProgress    = new Progress <int>();
            m_ActualProgress   = new Progress <int>();
            m_PauseSyncRoot    = new object();
            m_Context          = context;
            m_LineBuffers      = new List <BoundedConcurrentQueu <string> >();
            m_RecordBuffers    = new List <BoundedConcurrentQueu <object[]> >();
            m_RowBuffers       = new List <BoundedConcurrentQueu <Row> >();
            if (context.SourceFilePath.Contains(".xls"))
            {
                m_ExcelReader = new ExcelDataExtractor();
            }
            else
            {
                m_Reader         = new DIALFlatFileExtractor();
                m_StringSplitter = new StringSplitter(context.Qualifier)
                {
                    Delimiter = context.Delimiter
                };
            }
            m_RowBuilder = new RecordToRowTransformer(context.ColumnNames, context.IsSkippingError);
            m_Loader     = new SQLTableLoader();
            //register event

            m_ActualProgress.ProgressChanged += OnReaderEvent;
        }
Ejemplo n.º 2
0
        public void DIALFlatFileExtractorTest()
        {
            DIALFlatFileExtractor FlatFileExtractor  = new DIALFlatFileExtractor();
            var                      action          = FlatFileExtractor.GetPausableReportingWorkItem();
            List <string>            ResultList      = new List <string>();
            ConcurrentQueue <string> results         = new ConcurrentQueue <string>();
            ManualResetEvent         pause           = new ManualResetEvent(true);
            Progress <int>           prog            = new Progress <int>();
            PipelineContext          pipelineContext = new PipelineContext()
            {
                FirstLineContainsHeaders    = true,
                SourceFileIsSourcedFromDial = true,
                SourceFilePath = @"..\..\..\D2S.LibraryTests\DIALFormattedTestData.txt"
            };

            FlatFileExtractor.SetContext(pipelineContext);

            action(pipelineContext, results, pause, prog);
            ResultList = results.ToList();
            foreach (string s in ResultList)
            {
                Console.WriteLine(s);
            }

            Assert.AreEqual(expected: "6123981||00927123||657392||22-01-2019||Pietje Puk", actual: ResultList[0]);
        }