Index: DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Importer/CsvImporterLocations.cs =================================================================== diff -u -r3140 -r3148 --- DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Importer/CsvImporterLocations.cs (.../CsvImporterLocations.cs) (revision 3140) +++ DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Importer/CsvImporterLocations.cs (.../CsvImporterLocations.cs) (revision 3148) @@ -24,9 +24,10 @@ using System.IO; using System.Linq; using System.Threading; +using Deltares.LayerOnSlopeTool.Data.CsvImporters; using LumenWorks.Framework.IO.Csv; -namespace Deltares.LayerOnSlopeTool.Data.CsvImporters +namespace Deltares.LayerOnSlopeTool.Importer { /// /// Holds the importer for the locations from csv files @@ -144,12 +145,18 @@ } int colIndexLocationId = CsvReaderUtilities.GetHeaderIndexByString(headers, CsvColumnNames.LocationColumnName); + CheckColumn(colIndexLocationId, fileName, CsvColumnNames.LocationColumnName); int colIndexSurfaceLineId = CsvReaderUtilities.GetHeaderIndexByString(headers, CsvColumnNames.SurfaceLineColumnName); + CheckColumn(colIndexSurfaceLineId, fileName, CsvColumnNames.SurfaceLineColumnName); int colIndexXSoilGeometry2DOrigin = CsvReaderUtilities.GetHeaderIndexByString(headers, CsvColumnNames.XSoilGeometry2DOriginColumnName); int colIndexDikeEmbankmentMaterial = CsvReaderUtilities.GetHeaderIndexByString(headers, CsvColumnNames.DikeEmbankmentMaterialColumnName); + CheckColumn(colIndexDikeEmbankmentMaterial, fileName, CsvColumnNames.DikeEmbankmentMaterialColumnName); int colSoilGeometryName = CsvReaderUtilities.GetHeaderIndexByString(headers, CsvColumnNames.SoilGeometryNameColumnName); + CheckColumn(colSoilGeometryName, fileName, CsvColumnNames.SoilGeometryNameColumnName); int colLayerMaterial = CsvReaderUtilities.GetHeaderIndexByString(headers, CsvColumnNames.LayerMaterialColumnName); + CheckColumn(colLayerMaterial, fileName, CsvColumnNames.LayerMaterialColumnName); int colLayerThickness = CsvReaderUtilities.GetHeaderIndexByString(headers, CsvColumnNames.LayerThicknessColumnName); + CheckColumn(colLayerThickness, fileName, CsvColumnNames.LayerThicknessColumnName); var index = 1; while (csv.ReadNextRecord()) @@ -159,7 +166,7 @@ try { locationRecord.LocationRecordId = index++; - + /* * Required columns */ @@ -216,5 +223,14 @@ { get { return errorMessages; } } + + private void CheckColumn(int index, string fileName, string fieldName) + { + if (index < 0) + { + var csvHeaderFieldError = "The header misses the field: "; + throw new ArgumentException(string.Format("{0} : {1} {2}", fileName, csvHeaderFieldError, fieldName)); + } + } } }