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;