Index: DamEngine/trunk/src/Deltares.DamEngine.Data/General/Dike.cs =================================================================== diff -u -r6404 -r6774 --- DamEngine/trunk/src/Deltares.DamEngine.Data/General/Dike.cs (.../Dike.cs) (revision 6404) +++ DamEngine/trunk/src/Deltares.DamEngine.Data/General/Dike.cs (.../Dike.cs) (revision 6774) @@ -195,6 +195,8 @@ throw new DikeException("The dike ring has no locations defined"); } + var isValidationFailed = false; + var messageList = new List(); foreach (Location location in Locations) { ValidateLocationForPiping(isPiping, location); @@ -206,17 +208,27 @@ .Concat(validator.ValidateGeometryPointsAreOrdered(location.SurfaceLine)).ToArray(); if (validationResults.Length > 0) { - throw new SurfaceLineException(validationResults[0].Text); + foreach (ValidationResult validationResult in validationResults) + { + messageList.Add(location.SurfaceLine.Name + ": " + validationResult.Text); + } + isValidationFailed = true; } } if (location.Scenarios.Count < 1) { - throw new DikeException("Location " + location.Name + " has no scenarios, at least one scenario is required."); + messageList.Add("Location " + location.Name + " has no scenarios, at least one scenario is required."); + isValidationFailed = true; } ValidateLocationForOperational(isOperational, location); } + + if (isValidationFailed) + { + throw new DikeException(string.Join(Environment.NewLine, messageList)); + } } /// Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/EngineInterface.cs =================================================================== diff -u -r6404 -r6774 --- DamEngine/trunk/src/Deltares.DamEngine.Interface/EngineInterface.cs (.../EngineInterface.cs) (revision 6404) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface/EngineInterface.cs (.../EngineInterface.cs) (revision 6774) @@ -125,12 +125,12 @@ } catch (Exception e) { - var validationMessage = new LogMessage(LogMessageType.Error, null, e.Message); - validationMessages = new List - { - validationMessage - }; DamProjectData.CalculationMessages = new List(); + string[] errorMessages = e.Message.Split(Environment.NewLine); + foreach (string errorMessage in errorMessages) + { + DamProjectData.CalculationMessages.Add(new LogMessage(LogMessageType.Error, null, errorMessage)); + } } // Local validation can give messages and these have to be added to the results but note that there