Index: dam clients/DamUI/trunk/src/Dam/Data/DamEngineIo/FillXmlInputFromDamUi.cs =================================================================== diff -u -r531 -r546 --- dam clients/DamUI/trunk/src/Dam/Data/DamEngineIo/FillXmlInputFromDamUi.cs (.../FillXmlInputFromDamUi.cs) (revision 531) +++ dam clients/DamUI/trunk/src/Dam/Data/DamEngineIo/FillXmlInputFromDamUi.cs (.../FillXmlInputFromDamUi.cs) (revision 546) @@ -20,8 +20,12 @@ // All rights reserved. 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; namespace Deltares.Dam.Data.DamEngineIo { @@ -40,19 +44,20 @@ Input input = new Input(); input.DamProjectType = ConversionHelper.ConvertToInputDamProjectType(damProjectData.DamProjectType); Dike dike = damProjectData.WaterBoard.Dikes[0]; - TransferLocations(dike, input); - TransferSurfaceLines(dike, input); - TransferSoils(dike, input); + input.Locations = new DamEngine.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 DamEngine.Io.XmlInput.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, DamEngine.Io.XmlInput.Soil[] inputSoils) { - var soils = dike.SoilList.Soils; - input.Soils = new DamEngine.Io.XmlInput.Soil[soils.Count]; for (int i = 0; i < soils.Count; i++) { - var soil = dike.SoilList.Soils[i]; + var soil = soils[i]; var inputSoil = new DamEngine.Io.XmlInput.Soil(); inputSoil.Name = soil.Name; inputSoil.BeddingAngleSpecified = !Double.IsNaN(soil.BeddingAngle); @@ -65,16 +70,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]; @@ -89,16 +93,14 @@ }; 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, DamEngine.Io.XmlInput.Location[] inputLocations) { - int locationCount = dike.Locations.Count; - input.Locations = new DamEngine.Io.XmlInput.Location[locationCount]; - for (int i = 0; i < locationCount; i++) + for (int i = 0; i < dikeLocations.Count; i++) { - var location = dike.Locations[i]; + var location = dikeLocations[i]; var inputLocation = new DamEngine.Io.XmlInput.Location(); inputLocation.SurfaceLineName = location.SurfaceLine2.Name; @@ -131,7 +133,7 @@ waternetOptions.Pl1BelowToeDikePolderside = location.PlLineOffsetBelowDikeToeAtPolder; inputLocation.WaternetOptions = waternetOptions; - input.Locations[i] = inputLocation; + inputLocations[i] = inputLocation; } } } Index: dam clients/DamUI/trunk/src/Dam/Data/DamEngineIo/FillDamUiFromXmlInput.cs =================================================================== diff -u -r531 -r546 --- dam clients/DamUI/trunk/src/Dam/Data/DamEngineIo/FillDamUiFromXmlInput.cs (.../FillDamUiFromXmlInput.cs) (revision 531) +++ dam clients/DamUI/trunk/src/Dam/Data/DamEngineIo/FillDamUiFromXmlInput.cs (.../FillDamUiFromXmlInput.cs) (revision 546) @@ -51,20 +51,20 @@ damProjectData.WaterBoard.Dikes = new List(); damProjectData.WaterBoard.Dikes.Add(new Dike()); Dike dike = damProjectData.WaterBoard.Dikes[0]; - TransferSurfaceLines(input, dike); - TransferSoils(input, dike); - TransferLocations(input, dike); + TransferSurfaceLines(input.SurfaceLines, dike.SurfaceLines2); + dike.SoilList = new SoilList(); + TransferSoils(input.Soils, dike.SoilList); + TransferLocations(input.Locations, dike.Locations, dike.SurfaceLines2); return damProjectData; } - private static void TransferSoils(Input input, Dike dike) + private static void TransferSoils(DamEngine.Io.XmlInput.Soil[] inputSoils, SoilList dikeSoilList) { - dike.SoilList = new SoilList(); - var soils = dike.SoilList.Soils; - for (int i = 0; i < input.Soils.Length; i++) + var soils = dikeSoilList.Soils; + for (int i = 0; i < inputSoils.Length; i++) { var soil = new 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; @@ -75,16 +75,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); } } @@ -104,12 +104,12 @@ } } - private static void TransferLocations(Input input, Dike dike) + private static void TransferLocations(DamEngine.Io.XmlInput.Location[] inputLocations, IList dikeLocations, IList dikeSurfaceLines2) { - 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.PLLineCreationMethod = ConversionHelper.ConvertToPhreaticLineCreationMethod(waternetOptions.PhreaticLineCreationMethod); location.IntrusionVerticalWaterPressure = ConversionHelper.ConvertToIntrusionVerticalWaterPressure(waternetOptions.IntrusionVerticalWaterPressure); @@ -131,9 +131,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 = dikeSurfaceLines2.First(n => n.Name.Equals(inputLocation.SurfaceLineName)); location.SurfaceLine2 = surfaceLine; - dike.Locations.Add(location); + dikeLocations.Add(location); } } }