Index: DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.LayerCreator/LayerCreator.cs =================================================================== diff -u -r3176 -r3177 --- DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.LayerCreator/LayerCreator.cs (.../LayerCreator.cs) (revision 3176) +++ DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.LayerCreator/LayerCreator.cs (.../LayerCreator.cs) (revision 3177) @@ -33,6 +33,8 @@ private List locations = new List(); private List surfaceLines = new List(); private List errors = new List(); + private bool errorFound; + private string fullLogFilePath; public const string LogFile = "LayerOnSlopeTool.log"; @@ -45,7 +47,7 @@ InputFolderName = inputFolderName; GeometriesFolderName = geometriesFolderName; OutputFolderName = outputFolderName; - + fullLogFilePath = Path.Combine(OutputFolderName, LogFile); } /// Gets the name of the output folder. @@ -65,6 +67,7 @@ /// public void Execute() { + errorFound = false; locations = ReadLocations(InputFolderName); if (locations != null && locations.Count > 0) { @@ -74,6 +77,11 @@ ProcessLocations(); } } + + if (errorFound) + { + throw new Exception(String.Format("Error(s) found, see log file {0}.", fullLogFilePath)); + } } private void ProcessLocations() @@ -96,6 +104,7 @@ } catch (Exception e) { + errorFound = true; errors.Add(e.Message); WriteToLog(errors); } @@ -111,7 +120,6 @@ return surfaceLine; } } - return null; } @@ -122,10 +130,8 @@ { return surfaceLines; } - else - { - WriteToLog(errors); - } + WriteToLog(errors); + errorFound = true; return null; } @@ -136,17 +142,14 @@ { return locations; } - else - { - WriteToLog(errors); - } + WriteToLog(errors); + errorFound = true; return null; } private void WriteToLog(List linesToAdd) { - string fullFilePath = Path.Combine(OutputFolderName, LogFile); - File.AppendAllLines(fullFilePath, linesToAdd); + File.AppendAllLines(fullLogFilePath, linesToAdd); } private SurfaceLine DetermineSurfaceLineForGivenLayerData(SurfaceLine originalSurfaceLine, double layerThickness) Index: DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.LayerCreator.Tests/LayerCreatorTests.cs =================================================================== diff -u -r3176 -r3177 --- DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.LayerCreator.Tests/LayerCreatorTests.cs (.../LayerCreatorTests.cs) (revision 3176) +++ DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.LayerCreator.Tests/LayerCreatorTests.cs (.../LayerCreatorTests.cs) (revision 3177) @@ -19,6 +19,7 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; using System.IO; using Deltares.LayerOnSlopeTool.Data; using NUnit.Framework; @@ -45,7 +46,15 @@ } Directory.CreateDirectory(outputFolder); - layerCreator.Execute(); + try + { + layerCreator.Execute(); + } + catch (Exception e) + { + Assert.IsTrue(e.Message.Contains("Error(s) found, see log file")); + } + var resultFile = Path.Combine(outputFolder, "111-DIG-8986-01.2.sti"); Assert.IsFalse(File.Exists(resultFile)); var logFile = Path.Combine(outputFolder, LayerCreator.LogFile); @@ -65,7 +74,14 @@ } Directory.CreateDirectory(outputFolder); - layerCreator.Execute(); + try + { + layerCreator.Execute(); + } + catch (Exception e) + { + Assert.IsTrue(e.Message.Contains("Error(s) found, see log file")); + } var resultFile = Path.Combine(outputFolder, "111-DIG-8986-01.2.sti"); Assert.IsFalse(File.Exists(resultFile)); var logFile = Path.Combine(outputFolder, LayerCreator.LogFile); @@ -101,23 +117,29 @@ { var originalSurfaceLine = CreateSimpleStraightSurfaceLine(); var loweredSurfaceLine = originalSurfaceLine.DetermineLoweredSurfaceLineForGivenLayerThickness(1); - Assert.AreEqual(8,loweredSurfaceLine.SurfaceLinePoints.Count); + Assert.AreEqual(11,loweredSurfaceLine.SurfaceLinePoints.Count); Assert.AreEqual(0, loweredSurfaceLine.SurfaceLinePoints[0].XCoordinate, Diff); Assert.AreEqual(0, loweredSurfaceLine.SurfaceLinePoints[0].ZCoordinate, Diff); - Assert.AreEqual(10, loweredSurfaceLine.SurfaceLinePoints[1].XCoordinate, Diff); + Assert.AreEqual(5, loweredSurfaceLine.SurfaceLinePoints[1].XCoordinate, Diff); Assert.AreEqual(0, loweredSurfaceLine.SurfaceLinePoints[1].ZCoordinate, Diff); - Assert.AreEqual(12, loweredSurfaceLine.SurfaceLinePoints[2].XCoordinate, Diff); + Assert.AreEqual(10, loweredSurfaceLine.SurfaceLinePoints[2].XCoordinate, Diff); Assert.AreEqual(0, loweredSurfaceLine.SurfaceLinePoints[2].ZCoordinate, Diff); - Assert.AreEqual(14, loweredSurfaceLine.SurfaceLinePoints[3].XCoordinate, Diff); + Assert.AreEqual(12, loweredSurfaceLine.SurfaceLinePoints[3].XCoordinate, Diff); Assert.AreEqual(0, loweredSurfaceLine.SurfaceLinePoints[3].ZCoordinate, Diff); - Assert.AreEqual(14.01, loweredSurfaceLine.SurfaceLinePoints[4].XCoordinate, Diff); - Assert.AreEqual(-1, loweredSurfaceLine.SurfaceLinePoints[4].ZCoordinate, Diff); - Assert.AreEqual(15.99, loweredSurfaceLine.SurfaceLinePoints[5].XCoordinate, Diff); + Assert.AreEqual(14, loweredSurfaceLine.SurfaceLinePoints[4].XCoordinate, Diff); + Assert.AreEqual(0, loweredSurfaceLine.SurfaceLinePoints[4].ZCoordinate, Diff); + Assert.AreEqual(14.01, loweredSurfaceLine.SurfaceLinePoints[5].XCoordinate, Diff); Assert.AreEqual(-1, loweredSurfaceLine.SurfaceLinePoints[5].ZCoordinate, Diff); - Assert.AreEqual(16, loweredSurfaceLine.SurfaceLinePoints[6].XCoordinate, Diff); - Assert.AreEqual(0, loweredSurfaceLine.SurfaceLinePoints[6].ZCoordinate, Diff); - Assert.AreEqual(30, loweredSurfaceLine.SurfaceLinePoints[7].XCoordinate, Diff); - Assert.AreEqual(0, loweredSurfaceLine.SurfaceLinePoints[7].ZCoordinate, Diff); + Assert.AreEqual(15, loweredSurfaceLine.SurfaceLinePoints[6].XCoordinate, Diff); + Assert.AreEqual(-1, loweredSurfaceLine.SurfaceLinePoints[6].ZCoordinate, Diff); + Assert.AreEqual(15.99, loweredSurfaceLine.SurfaceLinePoints[7].XCoordinate, Diff); + Assert.AreEqual(-1, loweredSurfaceLine.SurfaceLinePoints[7].ZCoordinate, Diff); + Assert.AreEqual(16, loweredSurfaceLine.SurfaceLinePoints[8].XCoordinate, Diff); + Assert.AreEqual(0, loweredSurfaceLine.SurfaceLinePoints[8].ZCoordinate, Diff); + Assert.AreEqual(22, loweredSurfaceLine.SurfaceLinePoints[9].XCoordinate, Diff); + Assert.AreEqual(0, loweredSurfaceLine.SurfaceLinePoints[9].ZCoordinate, Diff); + Assert.AreEqual(30, loweredSurfaceLine.SurfaceLinePoints[10].XCoordinate, Diff); + Assert.AreEqual(0, loweredSurfaceLine.SurfaceLinePoints[10].ZCoordinate, Diff); } @@ -130,6 +152,13 @@ XCoordinate = 0, ZCoordinate = 0, PointType = CharacteristicPointType.SurfaceLevelOutside }; surfaceLine.SurfaceLinePoints.Add(point); + var pointA = new SurfaceLinePoint + { + XCoordinate = 5, + ZCoordinate = 0, + PointType = CharacteristicPointType.None + }; + surfaceLine.SurfaceLinePoints.Add(pointA); var point1 = new SurfaceLinePoint { XCoordinate = 10, @@ -151,13 +180,27 @@ PointType = CharacteristicPointType.DikeTopAtPolder }; surfaceLine.SurfaceLinePoints.Add(point3); + var point3A = new SurfaceLinePoint + { + XCoordinate = 15, + ZCoordinate = 0, + PointType = CharacteristicPointType.None + }; + surfaceLine.SurfaceLinePoints.Add(point3A); var point4 = new SurfaceLinePoint { XCoordinate = 16, ZCoordinate = 0, PointType = CharacteristicPointType.DikeToeAtPolder }; surfaceLine.SurfaceLinePoints.Add(point4); + var point4A = new SurfaceLinePoint + { + XCoordinate = 22, + ZCoordinate = 0, + PointType = CharacteristicPointType.None + }; + surfaceLine.SurfaceLinePoints.Add(point4A); var point5 = new SurfaceLinePoint { XCoordinate = 30,