Index: dam clients/DamUI/trunk/src/Dam/Data/DamEngineIo/FillXmlInputFromDamUi.cs =================================================================== diff -u -r546 -r547 --- dam clients/DamUI/trunk/src/Dam/Data/DamEngineIo/FillXmlInputFromDamUi.cs (.../FillXmlInputFromDamUi.cs) (revision 546) +++ dam clients/DamUI/trunk/src/Dam/Data/DamEngineIo/FillXmlInputFromDamUi.cs (.../FillXmlInputFromDamUi.cs) (revision 547) @@ -22,7 +22,6 @@ using System; using System.Collections.Generic; using Deltares.DamEngine.Io.XmlInput; -using Deltares.Geotechnics.Soils; using Deltares.Geotechnics.SurfaceLines; using Soil = Deltares.Geotechnics.Soils.Soil; using SurfaceLine = Deltares.DamEngine.Io.XmlInput.SurfaceLine; @@ -41,6 +40,7 @@ /// public static Input CreateInput(DamProjectData damProjectData) { + ValidateDamProjectData(damProjectData); Input input = new Input(); input.DamProjectType = ConversionHelper.ConvertToInputDamProjectType(damProjectData.DamProjectType); Dike dike = damProjectData.WaterBoard.Dikes[0]; @@ -53,6 +53,39 @@ return input; } + private static void ValidateDamProjectData(DamProjectData damProjectData) + { + if (damProjectData.WaterBoard == null) + { + throw new NullReferenceException("No dike defined in this project"); + } + if (damProjectData.WaterBoard.Dikes == null || damProjectData.WaterBoard.Dikes.Count != 1) + { + throw new NullReferenceException("The project should contain exactly 1 dike"); + } + var dike = damProjectData.WaterBoard.Dikes[0]; + if (dike.Locations == null) + { + throw new NullReferenceException("No locations defined in this project"); + } + if (dike.SurfaceLines2 == null) + { + throw new NullReferenceException("No surfacelines defined in this project"); + } + if (dike.SoilList == null) + { + throw new NullReferenceException("No soils defined in this project"); + } + if (dike.SoilList.Soils == null) + { + throw new NullReferenceException("No soils defined in this project"); + } + if (dike.SoilProfiles == null) + { + throw new NullReferenceException("No soilprofiles1D defined in this project"); + } + } + private static void TransferSoils(List soils, DamEngine.Io.XmlInput.Soil[] inputSoils) { for (int i = 0; i < soils.Count; i++) Index: dam clients/DamUI/trunk/src/Dam/Tests/DamEngineIo/FillXmlInputFromDamUiTests.cs =================================================================== diff -u -r531 -r547 --- dam clients/DamUI/trunk/src/Dam/Tests/DamEngineIo/FillXmlInputFromDamUiTests.cs (.../FillXmlInputFromDamUiTests.cs) (revision 531) +++ dam clients/DamUI/trunk/src/Dam/Tests/DamEngineIo/FillXmlInputFromDamUiTests.cs (.../FillXmlInputFromDamUiTests.cs) (revision 547) @@ -170,7 +170,6 @@ "SheetPilePointZ", "LocalXZSheetPilePoint", "SoilbaseDB", - "SurfaceLine", "LocalXZSurfaceLine", "SoilLayer1D", "SoildatabaseName", Index: dam clients/DamUI/trunk/src/Dam/Data/DamEngineIo/FillDamUiFromXmlInput.cs =================================================================== diff -u -r546 -r547 --- dam clients/DamUI/trunk/src/Dam/Data/DamEngineIo/FillDamUiFromXmlInput.cs (.../FillDamUiFromXmlInput.cs) (revision 546) +++ dam clients/DamUI/trunk/src/Dam/Data/DamEngineIo/FillDamUiFromXmlInput.cs (.../FillDamUiFromXmlInput.cs) (revision 547) @@ -44,6 +44,7 @@ /// public static DamProjectData CreateDamProjectData(Input input) { + ValidateInput(input); var damProjectData = new DamProjectData(); damProjectData.DamProjectType = ConversionHelper.ConvertToDamProjectType(input.DamProjectType); @@ -58,6 +59,26 @@ return damProjectData; } + private static void ValidateInput(Input input) + { + if (input == null) + { + throw new NullReferenceException("No input defined"); + } + if (input.Locations == null) + { + throw new NullReferenceException("No locations defined in the input"); + } + if (input.SurfaceLines == null) + { + throw new NullReferenceException("No surfacelines defined in the input"); + } + if (input.Soils == null) + { + throw new NullReferenceException("No soils defined in the input"); + } + } + private static void TransferSoils(DamEngine.Io.XmlInput.Soil[] inputSoils, SoilList dikeSoilList) { var soils = dikeSoilList.Soils;