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);