Update CsvHelper from 2.14 to 12.2.1

This commit is contained in:
2019-11-20 21:45:44 -05:00
parent 5dabdb3039
commit aa14c362f7
6 changed files with 46 additions and 36 deletions
+5 -3
View File
@@ -38,9 +38,8 @@
<HintPath>..\packages\AutoMapper.3.3.1\lib\net40\AutoMapper.Net4.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="CsvHelper, Version=2.0.0.0, Culture=neutral, PublicKeyToken=8c4959082be5c823, processorArchitecture=MSIL">
<HintPath>..\packages\CsvHelper.2.14.2\lib\net45\CsvHelper.dll</HintPath>
<Private>True</Private>
<Reference Include="CsvHelper, Version=12.0.0.0, Culture=neutral, PublicKeyToken=8c4959082be5c823, processorArchitecture=MSIL">
<HintPath>..\packages\CsvHelper.12.2.1\lib\net45\CsvHelper.dll</HintPath>
</Reference>
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll</HintPath>
@@ -71,6 +70,9 @@
<Reference Include="System.IO.Compression" />
<Reference Include="System.Numerics" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ValueTuple, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.ValueTuple.4.4.0\lib\netstandard1.0\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
+14 -7
View File
@@ -15,18 +15,25 @@ namespace LeafWeb.Core.Parsers
protected CsvParserBase(FileSystemInfo csvFile)
{
_reader = OpenCsv(csvFile);
var csvConfiguration = new CsvConfiguration { HasHeaderRecord = false, IgnoreBlankLines = false, IgnoreReadingExceptions = true};
CsvReader = new CsvReader(_reader, csvConfiguration);
}
CsvReader = InitCsvReader(_reader);
}
protected CsvParserBase(byte[] fileContents)
{
_memoryStream = new MemoryStream(fileContents);
_reader = new StreamReader(_memoryStream);
var csvConfiguration = new CsvConfiguration { HasHeaderRecord = false, IgnoreBlankLines = false, IgnoreReadingExceptions = true };
CsvReader = new CsvReader(_reader, csvConfiguration);
}
CsvReader = InitCsvReader(_reader);
}
private static CsvReader InitCsvReader(StreamReader reader)
{
var csvReader = new CsvReader(reader);
csvReader.Configuration.HasHeaderRecord = false;
csvReader.Configuration.IgnoreBlankLines = false;
csvReader.Configuration.ReadingExceptionOccurred = exception => false;
return csvReader;
}
internal static StreamReader OpenCsv(FileSystemInfo csvFile)
{
@@ -42,7 +49,7 @@ namespace LeafWeb.Core.Parsers
if (!CsvReader.Read())
return null;
return CsvReader.CurrentRecord;
return CsvReader.Context.Record;
}
public void Dispose()
+4 -4
View File
@@ -11,7 +11,7 @@ namespace LeafWeb.Core.Parsers
{
private readonly FileSystemInfo _csvFile;
private sealed class FluxnetSiteMap : CsvClassMap<FluxnetSite>
private sealed class FluxnetSiteMap : ClassMap<FluxnetSite>
{
public FluxnetSiteMap()
{
@@ -31,9 +31,9 @@ namespace LeafWeb.Core.Parsers
{
using (var reader = CsvParserBase.OpenCsv(_csvFile))
{
var csvConfiguration = new CsvConfiguration {IsHeaderCaseSensitive = false};
csvConfiguration.RegisterClassMap<FluxnetSiteMap>();
var csvReader = new CsvReader(reader, csvConfiguration);
var csvReader = new CsvReader(reader);
csvReader.Configuration.PrepareHeaderForMatch = (s, i) => s.ToLowerInvariant();
csvReader.Configuration.RegisterClassMap<FluxnetSiteMap>();
return csvReader.GetRecords<FluxnetSite>().ToList();
}
}
+10 -11
View File
@@ -20,10 +20,10 @@ namespace LeafWeb.Core.Parsers
{
var fittingTitles = GetNextCsvRowValues();
if (fittingTitles == null)
throw new ParseException($"Could not read data header row on line number {CsvReader.Row}");
throw new ParseException($"Could not read data header row on line number {CsvReader.Context.Row}");
var fitUnits = GetNextCsvRowValues();
if (fitUnits == null)
throw new ParseException($"Could not read data units row on line number {CsvReader.Row}");
throw new ParseException($"Could not read data units row on line number {CsvReader.Context.Row}");
return ParseLeafGasComparisonSet(fittingTitles, matchCurveId).ToArray();
}
@@ -32,10 +32,10 @@ namespace LeafWeb.Core.Parsers
{
var fittingTitles = GetNextCsvRowValues();
if (fittingTitles == null)
throw new ParseException($"Could not read data header row on line number {CsvReader.Row}");
throw new ParseException($"Could not read data header row on line number {CsvReader.Context.Row}");
var fitUnits = GetNextCsvRowValues();
if (fitUnits == null)
throw new ParseException($"Could not read data units row on line number {CsvReader.Row}");
throw new ParseException($"Could not read data units row on line number {CsvReader.Context.Row}");
return ExtractSectionCurveIds(fittingTitles).Distinct().ToArray();
}
@@ -53,7 +53,7 @@ namespace LeafWeb.Core.Parsers
.Create(fittingTitles, new[] {values});
yield return fittingInfo[0].CurveID;
while (!CsvReader.IsRecordEmpty())
while (CsvReader.Context.Record.Length != 0)
values = GetNextCsvRowValues();
} while (values != null);
}
@@ -71,12 +71,11 @@ namespace LeafWeb.Core.Parsers
while (true)
{
var values = GetNextCsvRowValues();
if (CsvReader.IsRecordEmpty())
if (values == null) // end of file
yield break;
if (string.IsNullOrEmpty(CsvReader.Context.RawRecord))
continue;
//throw new ParseException($"Encountered empty line while reading fitting info on line {CsvReader.Row}");
if (values == null) // end of file
yield break;
if (matcher.IsPropertiesTitlesMatch(values))
if (matcher.IsPropertiesTitlesMatch(values))
{
photosyntheticTitles = values;
break;
@@ -97,7 +96,7 @@ namespace LeafWeb.Core.Parsers
while (true)
{
var values = GetNextCsvRowValues();
if (CsvReader.IsRecordEmpty()) // end of set
if (CsvReader.Context.Record.Length == 0) // end of set
break;
if (values == null)
{
+10 -10
View File
@@ -43,11 +43,11 @@ namespace LeafWeb.Core.Parsers
for (var i = 0; i < 10; i++)
{
if (!CsvReader.Read())
throw new ParseException("Could not read line number " + CsvReader.Row);
throw new ParseException("Could not read line number " + CsvReader.Context.Row);
string field;
if (!CsvReader.TryGetField(0, out field))
throw new ParseException("Could not read first field on line number " + CsvReader.Row);
throw new ParseException("Could not read first field on line number " + CsvReader.Context.Row);
items.Add(field);
}
return ParsedObjectFactory<LeafInputData>.Create(items.ToArray());
@@ -57,13 +57,13 @@ namespace LeafWeb.Core.Parsers
{
var titles = GetNextCsvRowValues();
if (titles == null)
throw new ParseException("Could not read site header row on line number " + CsvReader.Row);
throw new ParseException("Could not read site header row on line number " + CsvReader.Context.Row);
var units = GetNextCsvRowValues();
if (units == null)
throw new ParseException("Could not read site units row on line number " + CsvReader.Row);
throw new ParseException("Could not read site units row on line number " + CsvReader.Context.Row);
var values = GetNextCsvRowValues();
if (values == null)
throw new ParseException("Could not read site value row on line number " + CsvReader.Row);
throw new ParseException("Could not read site value row on line number " + CsvReader.Context.Row);
var items = new List<Tuple<string, string>>();
for (var i = 0; i < titles.Length && i < values.Length; i++)
@@ -78,13 +78,13 @@ namespace LeafWeb.Core.Parsers
{
var titles = GetNextCsvRowValues();
if (titles == null)
throw new ParseException("Could not read photosynthetic header row on line number " + CsvReader.Row);
throw new ParseException("Could not read photosynthetic header row on line number " + CsvReader.Context.Row);
var units = GetNextCsvRowValues();
if (units == null)
throw new ParseException("Could not read photosynthetic units row on line number " + CsvReader.Row);
throw new ParseException("Could not read photosynthetic units row on line number " + CsvReader.Context.Row);
var values = GetNextCsvRowValues();
if (values == null)
throw new ParseException("Could not read photosynthetic value row on line number " + CsvReader.Row);
throw new ParseException("Could not read photosynthetic value row on line number " + CsvReader.Context.Row);
var items = new List<Tuple<string, string>>();
for (var i = 0; i < titles.Length && i < values.Length; i++)
@@ -99,10 +99,10 @@ namespace LeafWeb.Core.Parsers
{
var titles = GetNextCsvRowValues();
if (titles == null)
throw new ParseException("Could not read data header row on line number " + CsvReader.Row);
throw new ParseException("Could not read data header row on line number " + CsvReader.Context.Row);
var units = GetNextCsvRowValues();
if (units == null)
throw new ParseException("Could not read data units row on line number " + CsvReader.Row);
throw new ParseException("Could not read data units row on line number " + CsvReader.Context.Row);
var valueArrays = new List<string[]>();
while (true)
+3 -1
View File
@@ -1,10 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="AutoMapper" version="3.3.1" targetFramework="net45" />
<package id="CsvHelper" version="2.14.2" targetFramework="net45" />
<package id="CsvHelper" version="12.2.1" targetFramework="net45" />
<package id="EntityFramework" version="6.2.0" targetFramework="net45" />
<package id="fasterflect" version="2.1.3" targetFramework="net45" />
<package id="log4net" version="2.0.8" targetFramework="net45" />
<package id="MathNet.Numerics" version="4.5.1" targetFramework="net45" />
<package id="Microsoft.CSharp" version="4.5.0" targetFramework="net45" />
<package id="MlkPwgen" version="0.3.0" targetFramework="net45" />
<package id="System.ValueTuple" version="4.4.0" targetFramework="net45" />
</packages>