コード例 #1
0
        public DataSet ReadOrderFile(FileInfo file, CsvReaderConfiguration config)
        {
            var csvHelperConfig = new CsvHelper.Configuration.CsvConfiguration {
                SkipEmptyRecords = config.SkipEmptyRecords, ThrowOnBadData = true
            };
            var result = DataTableCreator.CreateDataSetForConfig(config);

            using (var parser = new CsvParser(file.OpenText(), csvHelperConfig))
            {
                while (true)
                {
                    if (config.SkipHeader)
                    {
                        SkipFirstHeaderLine(parser);
                    }
                    var row = parser.Read();
                    if (row == null)
                    {
                        break;
                    }
                    var recordType = recordSelector.SelectRecordForRow(config.CsvRecords, config, row);
                    var table      = result.Tables[recordType.TableName];
                    var newRow     = table.NewRow();
                    CsvFieldMapper.Mapfields(row, recordType, newRow);
                    table.Rows.Add(newRow);
                }
            }
            return(result);
        }
コード例 #2
0
 public CsvRecord SelectRecordForRow(List <CsvRecord> records, CsvReaderConfiguration config, string[] lineData)
 {
     if (!records.Any())
     {
         throw new Exception($"No records found.");
     }
     if (records.Count > 1)
     {
         throw new Exception($"Multiple records found with but SingleRecordCsvRecordReaderSelector supports only one.");
     }
     return(records.Single());
 }