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; }
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]); }