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); }
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); }
private void BeforeProcessTrailerRow(ProcessRowEventArgs <ParserContext20> e) { e.Context.Trailer = e.Row; ParsedDataProcessorHelper.ValidateNumerOfFields("Trailer Row", e.Row, _fileProcessorDefinition.TrailerRowProcessorDefinition); }