Index: dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/FillXmlOutputFromDamTests.cs =================================================================== diff -u -r718 -r747 --- dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/FillXmlOutputFromDamTests.cs (.../FillXmlOutputFromDamTests.cs) (revision 718) +++ dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/FillXmlOutputFromDamTests.cs (.../FillXmlOutputFromDamTests.cs) (revision 747) @@ -148,13 +148,24 @@ surfaceline.CharacteristicPoints.Add(p6); result.PipingDesignResults.RedesignedSurfaceLine = surfaceline; result.PipingDesignResults.UpliftSituation = situation; + + result.StabilityDesignResults = new StabilityDesignResults + { + ResultMessage = "no problemo", + SafetyFactor = (i + 1) * 0.66, + Zone1SafetyFactor = (i + 1) * 0.64, + LocalZone1EntryPointX = (i + 1) * 12.66, + LocalZone1ExitPointX = (i + 1) * 21.66, + Zone2SafetyFactor = (i + 2) * 0.64, + LocalZone2EntryPointX = (i + 2) * 12.66, + LocalZone2ExitPointX = (i + 2) * 21.66, + NumberOfIterations = (i + 1) * 3, + UpliftSituation = situation, + RedesignedSurfaceLine = surfaceline + }; damProjectData.DesignCalculations.Add(result); } - const int messageCount = 2; - for (int i = 0; i < messageCount; i++) - { - - } + damProjectData.CalculationMessages = new List(); damProjectData.CalculationMessages.Add(new LogMessage(LogMessageType.Error, null, "Error 1")); damProjectData.CalculationMessages.Add(new LogMessage(LogMessageType.Error, null, "Error 2")); Index: dam engine/trunk/src/Deltares.DamEngine.Interface/FillXmlOutputFromDam.cs =================================================================== diff -u -r721 -r747 --- dam engine/trunk/src/Deltares.DamEngine.Interface/FillXmlOutputFromDam.cs (.../FillXmlOutputFromDam.cs) (revision 721) +++ dam engine/trunk/src/Deltares.DamEngine.Interface/FillXmlOutputFromDam.cs (.../FillXmlOutputFromDam.cs) (revision 747) @@ -170,6 +170,10 @@ { CreateDesignResultsPipingOutput(desResult, designResult); } + if (designResult.StabilityDesignResults != null) + { + CreateDesignResultsStabilityOutput(desResult, designResult); + } output.Results.CalculationResults.DesignResults[designResultCount] = desResult; designResultCount++; } @@ -250,15 +254,85 @@ if (designResult.PipingDesignResults.UpliftSituation.HasValue) { var uplift = designResult.PipingDesignResults.UpliftSituation.Value; - desResult.PipingDesignResults.UpliftSituation = new Io.XmlOutput.UpliftSituation(); - desResult.PipingDesignResults.UpliftSituation.IsUplift = uplift.IsUplift; - desResult.PipingDesignResults.UpliftSituation.Pl3MinUplift = uplift.Pl3MinUplift; - desResult.PipingDesignResults.UpliftSituation.Pl3HeadAdjusted = uplift.Pl3HeadAdjusted; - desResult.PipingDesignResults.UpliftSituation.Pl3LocationXMinUplift = uplift.Pl3LocationXMinUplift; - desResult.PipingDesignResults.UpliftSituation.Pl4MinUplift = uplift.Pl4MinUplift; - desResult.PipingDesignResults.UpliftSituation.Pl4HeadAdjusted = uplift.Pl4HeadAdjusted; - desResult.PipingDesignResults.UpliftSituation.Pl4LocationXMinUplift = uplift.Pl4LocationXMinUplift; + desResult.PipingDesignResults.UpliftSituation = new Io.XmlOutput.UpliftSituation + { + IsUplift = uplift.IsUplift, + Pl3MinUplift = uplift.Pl3MinUplift, + Pl3HeadAdjusted = uplift.Pl3HeadAdjusted, + Pl3LocationXMinUplift = uplift.Pl3LocationXMinUplift, + Pl4MinUplift = uplift.Pl4MinUplift, + Pl4HeadAdjusted = uplift.Pl4HeadAdjusted, + Pl4LocationXMinUplift = uplift.Pl4LocationXMinUplift + }; } } + + + private static void CreateDesignResultsStabilityOutput(DesignResult desResult, Data.General.Results.DesignResult designResult) + { + desResult.StabilityDesignResults = new DesignResultStabilityDesignResults() + { + ResultMessage = designResult.StabilityDesignResults.ResultMessage + }; + + if (designResult.StabilityDesignResults.UpliftSituation.HasValue) + { + var uplift = designResult.StabilityDesignResults.UpliftSituation.Value; + desResult.StabilityDesignResults.UpliftSituation = new Io.XmlOutput.UpliftSituation + { + IsUplift = uplift.IsUplift, + Pl3MinUplift = uplift.Pl3MinUplift, + Pl3HeadAdjusted = uplift.Pl3HeadAdjusted, + Pl3LocationXMinUplift = uplift.Pl3LocationXMinUplift, + Pl4MinUplift = uplift.Pl4MinUplift, + Pl4HeadAdjusted = uplift.Pl4HeadAdjusted, + Pl4LocationXMinUplift = uplift.Pl4LocationXMinUplift + }; + } + + if (designResult.StabilityDesignResults.RedesignedSurfaceLine != null) + { + desResult.StabilityDesignResults.RedesignedSurfaceLine = new SurfaceLine + { + Name = designResult.StabilityDesignResults.RedesignedSurfaceLine.Name, + Points = new SurfaceLinePoint[designResult.StabilityDesignResults.RedesignedSurfaceLine.CharacteristicPoints.Count] + }; + for (int j = 0; j < designResult.StabilityDesignResults.RedesignedSurfaceLine.CharacteristicPoints.Count; j++) + { + var characteristicPoint = designResult.StabilityDesignResults.RedesignedSurfaceLine.CharacteristicPoints[j]; + var inputPoint = new SurfaceLinePoint() + { + PointType = ConversionHelper.ConvertToInputPointType(characteristicPoint.CharacteristicPointType), + X = characteristicPoint.X, + Z = characteristicPoint.Z + }; + desResult.StabilityDesignResults.RedesignedSurfaceLine.Points[j] = inputPoint; + } + } + + desResult.StabilityDesignResults.SafetyFactorSpecified = designResult.StabilityDesignResults.SafetyFactor.HasValue; + if (designResult.StabilityDesignResults.SafetyFactor.HasValue) desResult.StabilityDesignResults.SafetyFactor = designResult.StabilityDesignResults.SafetyFactor.Value; + + desResult.StabilityDesignResults.Zone1SafetyFactorSpecified = designResult.StabilityDesignResults.Zone1SafetyFactor.HasValue; + if (designResult.StabilityDesignResults.Zone1SafetyFactor.HasValue) desResult.StabilityDesignResults.Zone1SafetyFactor = designResult.StabilityDesignResults.Zone1SafetyFactor.Value; + + desResult.StabilityDesignResults.Zone1EntryPointXSpecified = designResult.StabilityDesignResults.LocalZone1EntryPointX.HasValue; + if (designResult.StabilityDesignResults.LocalZone1EntryPointX.HasValue) desResult.StabilityDesignResults.Zone1EntryPointX = designResult.StabilityDesignResults.LocalZone1EntryPointX.Value; + + desResult.StabilityDesignResults.Zone1ExitPointXSpecified = designResult.StabilityDesignResults.LocalZone1ExitPointX.HasValue; + if (designResult.StabilityDesignResults.LocalZone1ExitPointX.HasValue) desResult.StabilityDesignResults.Zone1ExitPointX = designResult.StabilityDesignResults.LocalZone1ExitPointX.Value; + + desResult.StabilityDesignResults.Zone2SafetyFactorSpecified = designResult.StabilityDesignResults.Zone2SafetyFactor.HasValue; + if (designResult.StabilityDesignResults.Zone2SafetyFactor.HasValue) desResult.StabilityDesignResults.Zone2SafetyFactor = designResult.StabilityDesignResults.Zone2SafetyFactor.Value; + + desResult.StabilityDesignResults.Zone2EntryPointXSpecified = designResult.StabilityDesignResults.LocalZone2EntryPointX.HasValue; + if (designResult.StabilityDesignResults.LocalZone2EntryPointX.HasValue) desResult.StabilityDesignResults.Zone2EntryPointX = designResult.StabilityDesignResults.LocalZone2EntryPointX.Value; + + desResult.StabilityDesignResults.Zone2ExitPointXSpecified = designResult.StabilityDesignResults.LocalZone2ExitPointX.HasValue; + if (designResult.StabilityDesignResults.LocalZone2ExitPointX.HasValue) desResult.StabilityDesignResults.Zone2ExitPointX = designResult.StabilityDesignResults.LocalZone2ExitPointX.Value; + + desResult.StabilityDesignResults.NumberOfIterationsSpecified = designResult.StabilityDesignResults.NumberOfIterations.HasValue; + if (designResult.StabilityDesignResults.NumberOfIterations.HasValue) desResult.StabilityDesignResults.NumberOfIterations = designResult.StabilityDesignResults.NumberOfIterations.Value; + } } } Index: dam engine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlOutput.cs =================================================================== diff -u -r722 -r747 --- dam engine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlOutput.cs (.../FillDamFromXmlOutput.cs) (revision 722) +++ dam engine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlOutput.cs (.../FillDamFromXmlOutput.cs) (revision 747) @@ -68,6 +68,10 @@ { CreateDesignResultsPipingOutput(designResult, desResult); } + if (designResult.StabilityDesignResults != null) + { + CreateDesignResultsStabilityOutput(designResult, desResult); + } damProjectData.DesignCalculations.Add(desResult); } @@ -160,5 +164,53 @@ surfaceLine.AddCharacteristicPoint(geometryPoint, ConversionHelper.ConvertToDamPointType(inputPoint.PointType)); } } + + private static void CreateDesignResultsStabilityOutput(DesignResult designResult, Data.General.Results.DesignResult desResult) + { + desResult.StabilityDesignResults = new Data.General.Results.StabilityDesignResults() + { + ResultMessage = designResult.StabilityDesignResults.ResultMessage + }; + if (designResult.StabilityDesignResults.RedesignedSurfaceLine != null) + { + desResult.StabilityDesignResults.RedesignedSurfaceLine = new SurfaceLine2 + { + Name = designResult.StabilityDesignResults.RedesignedSurfaceLine.Name + }; + desResult.StabilityDesignResults.RedesignedSurfaceLine.CharacteristicPoints.Geometry = desResult.StabilityDesignResults.RedesignedSurfaceLine.Geometry; + AddPointsToSurfaceLine(designResult.StabilityDesignResults.RedesignedSurfaceLine, desResult.StabilityDesignResults.RedesignedSurfaceLine); + } + if (designResult.StabilityDesignResults.SafetyFactorSpecified) desResult.StabilityDesignResults.SafetyFactor = designResult.StabilityDesignResults.SafetyFactor; + + if (designResult.StabilityDesignResults.Zone1SafetyFactorSpecified) desResult.StabilityDesignResults.Zone1SafetyFactor = designResult.StabilityDesignResults.Zone1SafetyFactor; + + if (designResult.StabilityDesignResults.Zone1EntryPointXSpecified) desResult.StabilityDesignResults.LocalZone1EntryPointX = designResult.StabilityDesignResults.Zone1EntryPointX; + + if (designResult.StabilityDesignResults.Zone1ExitPointXSpecified) desResult.StabilityDesignResults.LocalZone1ExitPointX = designResult.StabilityDesignResults.Zone1ExitPointX; + + if (designResult.StabilityDesignResults.Zone2SafetyFactorSpecified) desResult.StabilityDesignResults.Zone2SafetyFactor = designResult.StabilityDesignResults.Zone2SafetyFactor; + + if (designResult.StabilityDesignResults.Zone2EntryPointXSpecified) desResult.StabilityDesignResults.LocalZone2EntryPointX = designResult.StabilityDesignResults.Zone2EntryPointX; + + if (designResult.StabilityDesignResults.Zone2ExitPointXSpecified) desResult.StabilityDesignResults.LocalZone2ExitPointX = designResult.StabilityDesignResults.Zone2ExitPointX; + + if (designResult.StabilityDesignResults.NumberOfIterationsSpecified) desResult.StabilityDesignResults.NumberOfIterations = designResult.StabilityDesignResults.NumberOfIterations; + + if (designResult.StabilityDesignResults.UpliftSituation != null) + { + var uplift = designResult.StabilityDesignResults.UpliftSituation; + var situation = new Data.General.UpliftSituation + { + IsUplift = uplift.IsUplift, + Pl3MinUplift = uplift.Pl3MinUplift, + Pl3HeadAdjusted = uplift.Pl3HeadAdjusted, + Pl3LocationXMinUplift = uplift.Pl3LocationXMinUplift, + Pl4MinUplift = uplift.Pl4MinUplift, + Pl4HeadAdjusted = uplift.Pl4HeadAdjusted, + Pl4LocationXMinUplift = uplift.Pl4LocationXMinUplift + }; + desResult.StabilityDesignResults.UpliftSituation = situation; + } + } } }