Index: dam clients/DamUI/trunk/src/Dam/Data/DamEngineIo/FillXmlInputFromDamUi.cs =================================================================== diff -u -r568 -r571 --- dam clients/DamUI/trunk/src/Dam/Data/DamEngineIo/FillXmlInputFromDamUi.cs (.../FillXmlInputFromDamUi.cs) (revision 568) +++ dam clients/DamUI/trunk/src/Dam/Data/DamEngineIo/FillXmlInputFromDamUi.cs (.../FillXmlInputFromDamUi.cs) (revision 571) @@ -56,6 +56,11 @@ input.SoilProfiles1D = new DamEngine.Io.XmlInput.SoilProfile1D[profilesCount]; TransferSoilProfiles1D(dike.SoilProfiles, input.SoilProfiles1D); } + if (damProjectData.WaterBoard.Segments != null) + { + input.Segments = new DamEngine.Io.XmlInput.Segment[damProjectData.WaterBoard.Segments.Count]; + TransferSegments(damProjectData.WaterBoard.Segments, input.Segments); + } return input; } @@ -256,5 +261,52 @@ inputSoilProfile1D.Layers[i] = inputLayer; } } + private static void TransferSegments(IList segments, DamEngine.Io.XmlInput.Segment[] inputSegments) + { + for (int i = 0; i < segments.Count; i++) + { + var segment = segments[i]; + var inputSegment = new DamEngine.Io.XmlInput.Segment + { + Name = segment.Name + }; + AddSoilProfileProbabilities(segment, inputSegment); + inputSegments[i] = inputSegment; + } + } + + private static void AddSoilProfileProbabilities(Segment segment, DamEngine.Io.XmlInput.Segment inputSegment) + { + if (segment.SoilProfileProbabilities != null) + { + var probabilityCount = segment.SoilProfileProbabilities.Count; + inputSegment.SoilGeometryProbability = new SegmentSoilGeometryProbability[probabilityCount]; + for (int i = 0; i < probabilityCount; i++) + { + var soilGeometryProbability = segment.SoilProfileProbabilities[i]; + var inputSoilGeometryProbability = new SegmentSoilGeometryProbability(); + inputSoilGeometryProbability.Probability = soilGeometryProbability.Probability; + if (soilGeometryProbability.SegmentFailureMechanismType.HasValue) + { + inputSoilGeometryProbability.FailureMechanismSystemType = ConversionHelper.ConvertToInputFailureMechanismSystemType(soilGeometryProbability.SegmentFailureMechanismType.Value); + inputSoilGeometryProbability.FailureMechanismSystemTypeSpecified = true; + } + else + { + inputSoilGeometryProbability.FailureMechanismSystemTypeSpecified = false; + } + if (soilGeometryProbability.SoilGeometryType == SoilGeometryType.SoilGeometry1D) + { + inputSoilGeometryProbability.SoilGeometryName = soilGeometryProbability.SoilGeometryName; + } + else + { + inputSoilGeometryProbability.SoilGeometryName = soilGeometryProbability.SoilGeometry2DName; + } + inputSoilGeometryProbability.SoilGeometryType = ConversionHelper.ConvertToInputSoilGeometryType(soilGeometryProbability.SoilGeometryType); + inputSegment.SoilGeometryProbability[i] = inputSoilGeometryProbability; + } + } + } } }