Index: dam engine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs =================================================================== diff -u -r496 -r507 --- dam engine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 496) +++ dam engine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 507) @@ -20,12 +20,14 @@ // All rights reserved. using System; +using System.Collections.Generic; using System.Linq; using Deltares.DamEngine.Data.General; using Deltares.DamEngine.Data.Geometry; using Deltares.DamEngine.Data.Geotechnics; using Deltares.DamEngine.Io.XmlInput; using Location = Deltares.DamEngine.Data.General.Location; +using Soil = Deltares.DamEngine.Io.XmlInput.Soil; namespace Deltares.DamEngine.Interface { @@ -48,10 +50,11 @@ }; Dike dike = damProjectData.Dike; - TransferSurfaceLines(input, dike); - TransferSoils(input, dike); - TransferLocations(input, dike); - // PostProcess(input, dike); + TransferSurfaceLines(input.SurfaceLines, dike.SurfaceLines2); + dike.SoilList = new SoilList(); + TransferSoils(input.Soils, dike.SoilList.Soils); + TransferLocations(input.Locations, dike.Locations, dike.SurfaceLines2); + PostProcess(input, dike); return damProjectData; } @@ -61,20 +64,17 @@ /// /// The input. /// The dike. - /// private static void PostProcess(Input input, Dike dike) { - throw new NotImplementedException(); + // No code needed yet } - private static void TransferSoils(Input input, Dike dike) + private static void TransferSoils(Soil[] inputSoils, List soils) { - dike.SoilList = new SoilList(); - var soils = dike.SoilList.Soils; - for (int i = 0; i < input.Soils.Length; i++) + for (int i = 0; i < inputSoils.Length; i++) { var soil = new Data.Geotechnics.Soil(); - var inputSoil = input.Soils[i]; + var inputSoil = inputSoils[i]; soil.Name = inputSoil.Name; soil.BeddingAngle = inputSoil.BeddingAngleSpecified ? inputSoil.BeddingAngle : Double.NaN; soil.DiameterD70 = inputSoil.DiameterD70Specified ? inputSoil.DiameterD70 : Double.NaN; @@ -85,16 +85,16 @@ } } - private static void TransferSurfaceLines(Input input, Dike dike) + private static void TransferSurfaceLines(SurfaceLine[] inputSurfaceLines, IList dikeSurfaceLines) { - for (int i = 0; i < input.SurfaceLines.Length; i++) + for (int i = 0; i < inputSurfaceLines.Length; i++) { var surfaceLine = new SurfaceLine2(); - var inputSurfaceLine = input.SurfaceLines[i]; + var inputSurfaceLine = inputSurfaceLines[i]; surfaceLine.Name = inputSurfaceLine.Name; surfaceLine.CharacteristicPoints.Geometry = surfaceLine.Geometry; AddPointsToSurfaceLine(inputSurfaceLine, surfaceLine); - dike.SurfaceLines2.Add(surfaceLine); + dikeSurfaceLines.Add(surfaceLine); } } @@ -114,12 +114,12 @@ } } - private static void TransferLocations(Input input, Dike dike) + private static void TransferLocations(Io.XmlInput.Location[] inputLocations, IList dikeLocations, IList dikeSurfaceLines) { - for (int i = 0; i < input.Locations.Length; i++) + for (int i = 0; i < inputLocations.Length; i++) { var location = new Location(); - var inputLocation = input.Locations[i]; + var inputLocation = inputLocations[i]; var waternetOptions = inputLocation.WaternetOptions; location.ModelParametersForPLLines.PLLineCreationMethod = ConversionHelper.ConvertToPhreaticLineCreationMethod(waternetOptions.PhreaticLineCreationMethod); location.IntrusionVerticalWaterPressure = ConversionHelper.ConvertToIntrusionVerticalWaterPressure(waternetOptions.IntrusionVerticalWaterPressure); @@ -141,9 +141,9 @@ location.PlLineOffsetBelowDikeTopAtPolder = waternetOptions.Pl1BelowCrestPolderside; location.PlLineOffsetBelowShoulderBaseInside = waternetOptions.Pl1BelowShoulderCrestPolderside; location.PlLineOffsetBelowDikeToeAtPolder = waternetOptions.Pl1BelowToeDikePolderside; - SurfaceLine2 surfaceLine = dike.SurfaceLines2.First(n => n.Name.Equals(inputLocation.SurfaceLineName)); + SurfaceLine2 surfaceLine = dikeSurfaceLines.First(n => n.Name.Equals(inputLocation.SurfaceLineName)); location.SurfaceLine2 = surfaceLine; - dike.Locations.Add(location); + dikeLocations.Add(location); } } }