예제 #1
0
        private void SourceBeforeProcessDataRow(ProcessRowEventArgs <ParserContext20> e)
        {
            e.Context.CurrentDataRow20 = new DataRow20 {
                Row = e.Row
            };
            e.Context.DataRows.Add(e.Context.CurrentDataRow20);
            var kvp = FindDataRowProcessorDefinition(_fileProcessorDefinition, e);

            var hasValidDataType = ValidateDataRowProcessorDefinition(e, kvp.Value, kvp.Key);

            if (!hasValidDataType)
            {
                e.Context.UndecodedDataRows.Add(e.Context.CurrentDataRow20);
                return;
            }

            var lineType = $"Data Row '{e.Context.CurrentDataRow20.DataType}'";
            var hasValidateNumerOfFields = ParsedDataProcessorHelper.ValidateNumerOfFields(lineType, e.Row, kvp.Value.RowProcessorDefinition);

            if (!hasValidateNumerOfFields)
            {
                e.Context.UndecodedDataRows.Add(e.Context.CurrentDataRow20);
                return;
            }

            e.Context.DecodedDataRows.Add(e.Context.CurrentDataRow20);
        }
예제 #2
0
        private void SourceBeforeProcessRow(object sender, ProcessRowEventArgs <ParserContext10> e)
        {
            DataProcessorGlobal.Debug($"Processing Row. Index: {e.Row.Index}, Raw Data: '{e.Row.Raw}'");

            string lineType;
            RowProcessorDefinition rowProcessorDefinition;

            if (IsHeaderRow(e.Row))
            {
                lineType = "Header Row";
                rowProcessorDefinition = _fileProcessorDefinition.HeaderRowProcessorDefinition;
                e.Context.Header       = e.Row;
                ParsedDataProcessorHelper.ValidateNumerOfFields(lineType, e.Row, rowProcessorDefinition);
                return;
            }

            if (IsTrailerRow(e.Context.IsCurrentRowTheLast))
            {
                lineType = "Trailer Row";
                rowProcessorDefinition = _fileProcessorDefinition.TrailerRowProcessorDefinition;
                e.Context.Trailer      = e.Row;
                ParsedDataProcessorHelper.ValidateNumerOfFields(lineType, e.Row, rowProcessorDefinition);
                return;
            }

            lineType = "Data Row";
            rowProcessorDefinition = _fileProcessorDefinition.DataRowProcessorDefinition;
            e.Context.DataRows.Add(e.Row);
            ParsedDataProcessorHelper.ValidateNumerOfFields(lineType, e.Row, rowProcessorDefinition);
        }
예제 #3
0
 private void BeforeProcessTrailerRow(ProcessRowEventArgs <ParserContext20> e)
 {
     e.Context.Trailer = e.Row;
     ParsedDataProcessorHelper.ValidateNumerOfFields("Trailer Row", e.Row, _fileProcessorDefinition.TrailerRowProcessorDefinition);
 }