Index: DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs
===================================================================
diff -u -r1268 -r1405
--- DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 1268)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 1405)
@@ -105,13 +105,23 @@
Dike dike = damProjectData.Dike;
FillSurfaceLines(dike);
FillSoils(dike);
+ FillAquiferSoils(dike.SoilList);
FillSoilProfiles1D(dike);
FillSoilProfiles2D(dike);
FillSegments(damProjectData);
FillLocations(dike, damProjectData.Segments, damProjectData.ProjectPath);
return damProjectData;
}
+ private void FillAquiferSoils(SoilList soilList)
+ {
+ for (int i = 0; i < soilList.Soils.Count; i++)
+ {
+ // All even indeces are set to true, all odd indices are set to false
+ soilList.AquiferDictionary.Add(soilList.Soils[i], (i % 2) == 0);
+ }
+ }
+
private static void FillAnalysisSpecification(DamProjectData damProjectData)
{
damProjectData.DamProjectType = DamProjectType.Design;
Index: DamEngine/trunk/xsd/DamInput.xsd
===================================================================
diff -u -r1192 -r1405
--- DamEngine/trunk/xsd/DamInput.xsd (.../DamInput.xsd) (revision 1192)
+++ DamEngine/trunk/xsd/DamInput.xsd (.../DamInput.xsd) (revision 1405)
@@ -53,6 +53,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs
===================================================================
diff -u -r1382 -r1405
--- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 1382)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 1405)
@@ -69,6 +69,7 @@
TransferSurfaceLines(input.SurfaceLines, dike.SurfaceLines2);
dike.SoilList = new SoilList();
TransferSoils(input.Soils, dike.SoilList.Soils);
+ TransferAquiferSoils(input.AquiferSoils, dike.SoilList);
TransferSoilProfiles1D(input.SoilProfiles1D, dike.SoilProfiles, dike.SoilList);
TransferSoilProfiles2D(input.SoilProfiles2D, dike.SoilProfiles2D, dike.SoilList);
TransferSegments(input.Segments, damProjectData.Segments);
@@ -78,6 +79,17 @@
return damProjectData;
}
+ private static void TransferAquiferSoils(InputAquiferSoil[] inputAquiferSoils, SoilList soilList)
+ {
+ if (inputAquiferSoils != null)
+ {
+ soilList.AquiferDictionary = new Dictionary();
+ foreach (InputAquiferSoil aquiferSoil in inputAquiferSoils) {
+ soilList.AquiferDictionary.Add(soilList.GetSoilByName(aquiferSoil.Soilname), aquiferSoil.IsAquifer);
+ }
+ }
+ }
+
private static void TransferAnalysisSpecification(Input input, DamProjectData damProjectData)
{
damProjectData.DamProjectType = ConversionHelper.ConvertToDamProjectType(input.DamProjectType);
Index: DamEngine/trunk/src/Deltares.DamEngine.Io/DamInput.cs
===================================================================
diff -u -r1382 -r1405
--- DamEngine/trunk/src/Deltares.DamEngine.Io/DamInput.cs (.../DamInput.cs) (revision 1382)
+++ DamEngine/trunk/src/Deltares.DamEngine.Io/DamInput.cs (.../DamInput.cs) (revision 1405)
@@ -37,6 +37,8 @@
private StabilityParameters stabilityParametersField;
+ private InputAquiferSoil[] aquiferSoilsField;
+
private InputDamProjectType damProjectTypeField;
private int failureMechanismSystemTypeField;
@@ -138,6 +140,18 @@
}
///
+ [System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)]
+ [System.Xml.Serialization.XmlArrayItemAttribute("AquiferSoil", IsNullable=false)]
+ public InputAquiferSoil[] AquiferSoils {
+ get {
+ return this.aquiferSoilsField;
+ }
+ set {
+ this.aquiferSoilsField = value;
+ }
+ }
+
+ ///
[System.Xml.Serialization.XmlAttributeAttribute()]
public InputDamProjectType DamProjectType {
get {
@@ -3909,7 +3923,42 @@
///
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
+ public partial class InputAquiferSoil {
+
+ private string soilnameField;
+
+ private bool isAquiferField;
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string Soilname {
+ get {
+ return this.soilnameField;
+ }
+ set {
+ this.soilnameField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public bool IsAquifer {
+ get {
+ return this.isAquiferField;
+ }
+ set {
+ this.isAquiferField = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public enum InputDamProjectType {
///
Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs
===================================================================
diff -u -r1382 -r1405
--- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs (.../FillXmlInputFromDam.cs) (revision 1382)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs (.../FillXmlInputFromDam.cs) (revision 1405)
@@ -63,6 +63,7 @@
TransferSurfaceLines(dike.SurfaceLines2, input.SurfaceLines);
input.Soils = new Soil[dike.SoilList.Soils.Count];
TransferSoils(dike.SoilList.Soils, input.Soils);
+ TransferAquiferSoils(dike.SoilList.AquiferDictionary, input);
if (dike.SoilProfiles != null)
{
var profilesCount = dike.SoilProfiles.Count;
@@ -83,6 +84,26 @@
return input;
}
+ private static void TransferAquiferSoils(Dictionary aquiferDictionary, Input input)
+ {
+ InputAquiferSoil[] aquiferSoils;
+ if (aquiferDictionary != null && aquiferDictionary.Count > 0)
+ {
+ aquiferSoils = new InputAquiferSoil[aquiferDictionary.Count];
+ int soilIndex = 0;
+ foreach (KeyValuePair keyValuePair in aquiferDictionary)
+ {
+ aquiferSoils[soilIndex] = new InputAquiferSoil() {Soilname = keyValuePair.Key.Name, IsAquifer = keyValuePair.Value};
+ soilIndex++;
+ }
+ }
+ else
+ {
+ aquiferSoils = null;
+ }
+ input.AquiferSoils = aquiferSoils;
+ }
+
private static void TransferAnalysisSpecification(DamProjectData damProjectData, Input input)
{
input.DamProjectType = ConversionHelper.ConvertToInputDamProjectType(damProjectData.DamProjectType);