Index: dam engine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs =================================================================== diff -u -r496 -r508 --- dam engine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs (.../FillXmlInputFromDam.cs) (revision 496) +++ dam engine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs (.../FillXmlInputFromDam.cs) (revision 508) @@ -20,9 +20,13 @@ // All rights reserved. using System; +using System.Collections.Generic; using Deltares.DamEngine.Data.General; +using Deltares.DamEngine.Data.Geotechnics; using Deltares.DamEngine.Io.XmlInput; using Input = Deltares.DamEngine.Io.XmlInput.Input; +using Location = Deltares.DamEngine.Data.General.Location; +using Soil = Deltares.DamEngine.Io.XmlInput.Soil; namespace Deltares.DamEngine.Interface { @@ -38,19 +42,20 @@ Input input = new Input(); input.DamProjectType = ConversionHelper.ConvertToInputDamProjectType(damProjectData.DamProjectType); Dike dike = damProjectData.Dike; - TransferLocations(dike, input); - TransferSurfaceLines(dike, input); - TransferSoils(dike, input); + input.Locations = new Io.XmlInput.Location[dike.Locations.Count]; + TransferLocations(dike.Locations, input.Locations); + input.SurfaceLines = new SurfaceLine[dike.SurfaceLines2.Count]; + TransferSurfaceLines(dike.SurfaceLines2, input.SurfaceLines); + input.Soils = new Soil[dike.SoilList.Soils.Count]; + TransferSoils(dike.SoilList.Soils, input.Soils); return input; } - private static void TransferSoils(Dike dike, Input input) + private static void TransferSoils(List soils, Soil[] inputSoils) { - var soils = dike.SoilList.Soils; - input.Soils = new Soil[soils.Count]; for (int i = 0; i < soils.Count; i++) { - var soil = dike.SoilList.Soils[i]; + var soil = soils[i]; var inputSoil = new Soil(); inputSoil.Name = soil.Name; inputSoil.BeddingAngleSpecified = !Double.IsNaN(soil.BeddingAngle); @@ -63,16 +68,15 @@ inputSoil.PermeabKx = soil.PermeabKx; inputSoil.WhitesConstantSpecified = !Double.IsNaN(soil.WhitesConstant); inputSoil.WhitesConstant = soil.WhitesConstant; - input.Soils[i] = inputSoil; + inputSoils[i] = inputSoil; } } - private static void TransferSurfaceLines(Dike dike, Input input) + private static void TransferSurfaceLines(IList dikeSurfaceLines, SurfaceLine[] inputSurfaceLines) { - input.SurfaceLines = new SurfaceLine[dike.SurfaceLines2.Count]; - for (int i = 0; i < dike.SurfaceLines2.Count; i++) + for (int i = 0; i < dikeSurfaceLines.Count; i++) { - var surfaceLine = dike.SurfaceLines2[i]; + var surfaceLine = dikeSurfaceLines[i]; var inputSurfaceLine = new SurfaceLine(); inputSurfaceLine.Name = surfaceLine.Name; inputSurfaceLine.Points = new SurfaceLinePoint[surfaceLine.CharacteristicPoints.Count]; @@ -87,17 +91,16 @@ }; inputSurfaceLine.Points[j] = inputPoint; } - input.SurfaceLines[i] = inputSurfaceLine; + inputSurfaceLines[i] = inputSurfaceLine; } } - private static void TransferLocations(Dike dike, Input input) + private static void TransferLocations(IList dikeLocations, Io.XmlInput.Location[] inputLocations) { - int locationCount = dike.Locations.Count; - input.Locations = new Io.XmlInput.Location[locationCount]; + int locationCount = dikeLocations.Count; for (int i = 0; i < locationCount; i++) { - var location = dike.Locations[i]; + var location = dikeLocations[i]; var inputLocation = new Io.XmlInput.Location(); var waternetOptions = new LocationWaternetOptions(); inputLocation.SurfaceLineName = location.SurfaceLine2.Name; @@ -127,7 +130,7 @@ waternetOptions.Pl1BelowShoulderCrestPolderside = location.PlLineOffsetBelowShoulderBaseInside; waternetOptions.Pl1BelowToeDikePolderside = location.PlLineOffsetBelowDikeToeAtPolder; inputLocation.WaternetOptions = waternetOptions; - input.Locations[i] = inputLocation; + inputLocations[i] = inputLocation; } } }