Index: DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillXmlOutputFromDamTests.cs =================================================================== diff -u -r1175 -r1221 --- DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillXmlOutputFromDamTests.cs (.../FillXmlOutputFromDamTests.cs) (revision 1175) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillXmlOutputFromDamTests.cs (.../FillXmlOutputFromDamTests.cs) (revision 1221) @@ -24,13 +24,16 @@ using Deltares.DamEngine.Data.General.Results; using Deltares.DamEngine.Data.Geometry; using Deltares.DamEngine.Data.Geotechnics; +using Deltares.DamEngine.Data.RegionalAssessmentResults; +using Deltares.DamEngine.Data.Standard; using Deltares.DamEngine.Data.Standard.Calculation; using Deltares.DamEngine.Data.Standard.Logging; using Deltares.DamEngine.Io; using Deltares.DamEngine.Io.XmlOutput; using KellermanSoftware.CompareNetObjects; using NUnit.Framework; using DesignResult = Deltares.DamEngine.Data.General.Results.DesignResult; +using RegionalScenarioResult = Deltares.DamEngine.Data.RegionalAssessmentResults.RegionalScenarioResult; using UpliftSituation = Deltares.DamEngine.Data.General.UpliftSituation; namespace Deltares.DamEngine.Interface.Tests @@ -46,7 +49,8 @@ Output output = FillXmlOutputFromDam.CreateOutput(expectedDamProjectData); DamXmlSerialization.SaveOutputAsXmlFile(outputFilename, output); output = DamXmlSerialization.LoadOutputFromXmlFile(outputFilename); - DamProjectData actualDamProjectData = FillDamFromXmlOutput.CreateDamProjectData(output); + var inputData = CreateExampleDamProjectData(); + DamProjectData actualDamProjectData = FillDamFromXmlOutput.CreateDamProjectData(inputData, output); CompareDamProjectData(actualDamProjectData, expectedDamProjectData); } @@ -57,18 +61,20 @@ Output output = FillXmlOutputFromDam.CreateOutput(expectedDamProjectData); var xmlString = DamXmlSerialization.SaveOutputAsXmlString(output); output = DamXmlSerialization.LoadOutputFromXmlString(xmlString); - DamProjectData actualDamProjectData = FillDamFromXmlOutput.CreateDamProjectData(output); + var inputData = CreateExampleDamProjectData(); + DamProjectData actualDamProjectData = FillDamFromXmlOutput.CreateDamProjectData(inputData, output); CompareDamProjectData(actualDamProjectData, expectedDamProjectData); } private DamProjectData CreateExampleDamProjectData() { - const int resultsCount = 3; + const int designResultsCount = 3; + const int locationResultsCount = 2; var damProjectData = new DamProjectData { DesignCalculations = new List() }; - for (int i = 0; i < resultsCount; i++) + for (int i = 0; i < designResultsCount; i++) { var result = new DesignResult("location " + i, "Scenario " + (i * 2)) { @@ -167,7 +173,53 @@ }; damProjectData.DesignCalculations.Add(result); } - + + damProjectData.Dike = new Dike(); + for (int i = 0; i < locationResultsCount; i++) + { + var location = new Location(); + location.Name = "A" + (i + 1); + location.Segment = new Segment(); + var soilGeometryProbability = new SoilGeometryProbability(); + soilGeometryProbability.SoilProfile1D = new SoilProfile1D(); + soilGeometryProbability.SoilProfile1DName = soilGeometryProbability.SoilProfile1D.Name; + location.Segment.SoilProfileProbabilities.Add(soilGeometryProbability); + damProjectData.Dike.Locations.Add(location); + + var result = new LocationResult(); + result.RegionalScenariosResult = new RegionalScenariosResult(); + result.RegionalScenariosResult.CalculationResult = CalculationResult.NoLicense; + result.RegionalScenariosResult.SafetyFactor = 0.2 * (1 + i); + result.RegionalScenariosResult.RegionalScenarioResults = new List(); + var regionalScenarioResult = new RegionalScenarioResult(); + regionalScenarioResult.CalculationResult = CalculationResult.InvalidInputStructure; + regionalScenarioResult.DikeDrySensitivity = DikeDrySensitivity.Dry; + regionalScenarioResult.HydraulicShortcutType = HydraulicShortcutType.HydraulicShortcut; + regionalScenarioResult.LoadSituation = LoadSituation.Wet; + regionalScenarioResult.ModelOption = MStabModelType.HorizontalBalance; + regionalScenarioResult.SafetyFactor = 0.34 * (i + 1); + regionalScenarioResult.ScenarioType = ScenarioType.Scenario03; + regionalScenarioResult.UpliftType = UpliftType.Uplift; + + regionalScenarioResult.RegionalScenarioProfileResults = new List(); + var regionalScenarioProfileResult = new RegionalScenarioProfileResult(location, soilGeometryProbability); + regionalScenarioProfileResult.BaseFileName = "base " + (i * 3); + regionalScenarioProfileResult.DikeDrySensitivity = DikeDrySensitivity.None; + regionalScenarioProfileResult.FailureMechanismType = FailureMechanismSystemType.Piping; + regionalScenarioProfileResult.HydraulicShortcutType = HydraulicShortcutType.NoHydraulicShortcut; + regionalScenarioProfileResult.LoadSituation = LoadSituation.Dry; + regionalScenarioProfileResult.MstabModelOption = MStabModelType.Fellenius; + regionalScenarioProfileResult.PipingModelOption = PipingModelType.SellmeijerVnk; + regionalScenarioProfileResult.ScenarioType = ScenarioType.Scenario07; + regionalScenarioProfileResult.UpliftType = UpliftType.Uplift; + regionalScenarioResult.RegionalScenarioProfileResults.Add(regionalScenarioProfileResult); + + result.RegionalScenariosResult.RegionalScenarioResults.Add(regionalScenarioResult); + var locationJob = new LocationJob(location); + locationJob.LocationResult = result; + damProjectData.LocationJobs.Add(locationJob); + } + 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: DamEngine/trunk/src/Deltares.DamEngine.Data/RegionalAssessmentResults/RegionalScenariosResult.cs =================================================================== diff -u -r1065 -r1221 --- DamEngine/trunk/src/Deltares.DamEngine.Data/RegionalAssessmentResults/RegionalScenariosResult.cs (.../RegionalScenariosResult.cs) (revision 1065) +++ DamEngine/trunk/src/Deltares.DamEngine.Data/RegionalAssessmentResults/RegionalScenariosResult.cs (.../RegionalScenariosResult.cs) (revision 1221) @@ -62,7 +62,7 @@ public IList RegionalScenarioResults { get { return regionalScenarioResults; } - private set { regionalScenarioResults = value; } + set { regionalScenarioResults = value; } } /// Index: DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/PipingSellmeijer4ForcesTests.cs =================================================================== diff -u -r1210 -r1221 --- DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/PipingSellmeijer4ForcesTests.cs (.../PipingSellmeijer4ForcesTests.cs) (revision 1210) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/PipingSellmeijer4ForcesTests.cs (.../PipingSellmeijer4ForcesTests.cs) (revision 1221) @@ -89,7 +89,7 @@ string outputString = engineInterface.Run(); Assert.IsNotNull(outputString); var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); - DamProjectData actualDamProjectData = FillDamFromXmlOutput.CreateDamProjectData(output); + DamProjectData actualDamProjectData = FillDamFromXmlOutput.CreateDamProjectData(null, output); SurfaceLine2 redesignedSurfaceLine = actualDamProjectData.DesignCalculations[0].PipingDesignResults.RedesignedSurfaceLine; Assert.AreEqual(true, output.Results.CalculationResults.DesignResults[0].PipingDesignResults.UpliftSituation.IsUplift); Assert.AreEqual(1.995, redesignedSurfaceLine.DetermineShoulderHeight(), tolerance); Index: DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/MacroStabilityInwardsTests.cs =================================================================== diff -u -r1216 -r1221 --- DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/MacroStabilityInwardsTests.cs (.../MacroStabilityInwardsTests.cs) (revision 1216) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/MacroStabilityInwardsTests.cs (.../MacroStabilityInwardsTests.cs) (revision 1221) @@ -750,7 +750,7 @@ Assert.IsNotNull(outputString); var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); - DamProjectData actualDamProjectData = FillDamFromXmlOutput.CreateDamProjectData(output); + DamProjectData actualDamProjectData = FillDamFromXmlOutput.CreateDamProjectData(null, output); Assert.AreEqual(CalculationResult.Succeeded, ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults.DesignResults[0].CalculationResult)); SurfaceLine2 redesignedSurfaceLine = actualDamProjectData.DesignCalculations[0].StabilityDesignResults.RedesignedSurfaceLine; @@ -798,7 +798,7 @@ Assert.IsNotNull(outputString); var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); - DamProjectData actualDamProjectData = FillDamFromXmlOutput.CreateDamProjectData(output); + DamProjectData actualDamProjectData = FillDamFromXmlOutput.CreateDamProjectData(null, output); Assert.AreEqual(CalculationResult.Succeeded, ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults.DesignResults[0].CalculationResult)); SurfaceLine2 redesignedSurfaceLine = actualDamProjectData.DesignCalculations[0].StabilityDesignResults.RedesignedSurfaceLine; Index: DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/PipingBlighTests.cs =================================================================== diff -u -r1160 -r1221 --- DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/PipingBlighTests.cs (.../PipingBlighTests.cs) (revision 1160) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/PipingBlighTests.cs (.../PipingBlighTests.cs) (revision 1221) @@ -62,7 +62,7 @@ // Heave Factor = 90.0 Assert.IsNotNull(outputString); var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); - DamProjectData actualDamProjectData = FillDamFromXmlOutput.CreateDamProjectData(output); + DamProjectData actualDamProjectData = FillDamFromXmlOutput.CreateDamProjectData(null, output); SurfaceLine2 redesignedSurfaceLine = actualDamProjectData.DesignCalculations[0].PipingDesignResults.RedesignedSurfaceLine; Assert.AreEqual(0.521, output.Results.CalculationResults.DesignResults[0].PipingDesignResults.BlighFactor, tolerance); Assert.AreEqual(1.667, output.Results.CalculationResults.DesignResults[0].PipingDesignResults.BlighHcritical, tolerance); @@ -116,7 +116,7 @@ string outputString = engineInterface.Run(); Assert.IsNotNull(outputString); var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); - DamProjectData actualDamProjectData = FillDamFromXmlOutput.CreateDamProjectData(output); + DamProjectData actualDamProjectData = FillDamFromXmlOutput.CreateDamProjectData(null, output); SurfaceLine2 redesignedSurfaceLine = actualDamProjectData.DesignCalculations[0].PipingDesignResults.RedesignedSurfaceLine; Assert.AreEqual(true, output.Results.CalculationResults.DesignResults[0].PipingDesignResults.UpliftSituation.IsUplift); Assert.AreEqual(1.995, redesignedSurfaceLine.DetermineShoulderHeight(), tolerance); Index: DamEngine/trunk/src/Deltares.DamEngine.Data/RegionalAssessmentResults/RegionalScenarioResult.cs =================================================================== diff -u -r1065 -r1221 --- DamEngine/trunk/src/Deltares.DamEngine.Data/RegionalAssessmentResults/RegionalScenarioResult.cs (.../RegionalScenarioResult.cs) (revision 1065) +++ DamEngine/trunk/src/Deltares.DamEngine.Data/RegionalAssessmentResults/RegionalScenarioResult.cs (.../RegionalScenarioResult.cs) (revision 1221) @@ -69,7 +69,7 @@ public IList RegionalScenarioProfileResults { get { return regionalScenarioProfileResults; } - private set { regionalScenarioProfileResults = value; } + set { regionalScenarioProfileResults = value; } } /// Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlOutput.cs =================================================================== diff -u -r1175 -r1221 --- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlOutput.cs (.../FillDamFromXmlOutput.cs) (revision 1175) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlOutput.cs (.../FillDamFromXmlOutput.cs) (revision 1221) @@ -20,14 +20,16 @@ // All rights reserved. using System.Collections.Generic; +using System.Linq; using Deltares.DamEngine.Data.General; +using Deltares.DamEngine.Data.General.Results; using Deltares.DamEngine.Data.Geometry; using Deltares.DamEngine.Data.Geotechnics; using Deltares.DamEngine.Data.RegionalAssessmentResults; +using Deltares.DamEngine.Data.Standard; using Deltares.DamEngine.Data.Standard.Logging; using Deltares.DamEngine.Io.XmlOutput; -using RegionalResult = Deltares.DamEngine.Io.XmlOutput.RegionalResult; -using RegionalScenarioResult = Deltares.DamEngine.Io.XmlOutput.RegionalScenarioResult; +using DesignResult = Deltares.DamEngine.Io.XmlOutput.DesignResult; namespace Deltares.DamEngine.Interface { @@ -39,11 +41,16 @@ /// /// Creates the dam project data. /// + /// /// The output. /// - public static DamProjectData CreateDamProjectData(Output output) + public static DamProjectData CreateDamProjectData(DamProjectData damProjectData, Output output) { - var damProjectData = new DamProjectData(); + if (damProjectData == null) + { + damProjectData = new DamProjectData(); + } + //var damProjectData = new DamProjectData(); if (output != null && output.Results != null && output.Results.CalculationResults != null) { if (output.Results.CalculationResults.DesignResults != null) @@ -69,10 +76,10 @@ { BaseFileName = designResult.BaseFileName, CalculationSubDir = designResult.CalculationSubDir, - ProfileName = designResult.ProfileName + ProfileName = designResult.ProfileName, + CalculationResult = ConversionHelper.ConvertToCalculationResult(designResult.CalculationResult) }; - desResult.CalculationResult = ConversionHelper.ConvertToCalculationResult(designResult.CalculationResult); if (designResult.PipingDesignResults != null) { @@ -91,10 +98,12 @@ for (int i = 0; i < output.Results.CalculationMessages.Length; i++) { var validationResult = output.Results.CalculationMessages[i]; - var logMessage = new LogMessage(); - logMessage.MessageType = ConversionHelper.ConvertToLogMessageType(validationResult.MessageType); - logMessage.Subject = null; - logMessage.Message = validationResult.Message1; + var logMessage = new LogMessage + { + MessageType = ConversionHelper.ConvertToLogMessageType(validationResult.MessageType), + Subject = null, + Message = validationResult.Message1 + }; damProjectData.CalculationMessages.Add(logMessage); } } @@ -109,7 +118,7 @@ model = PipingModelType.SellmeijerVnk; if (designResult.PipingDesignResults.Wbi2017FactorSpecified) model = PipingModelType.Wti2017; - desResult.PipingDesignResults = new Data.General.Results.PipingDesignResults(model) + desResult.PipingDesignResults = new PipingDesignResults(model) { ResultMessage = designResult.PipingDesignResults.ResultMessage }; @@ -147,19 +156,21 @@ if (designResult.PipingDesignResults.UpliftSituation != null) { var uplift = designResult.PipingDesignResults.UpliftSituation; - var situation = new Data.General.UpliftSituation(); - situation.IsUplift = uplift.IsUplift; - situation.Pl3MinUplift = uplift.Pl3MinUplift; - situation.Pl3HeadAdjusted = uplift.Pl3HeadAdjusted; - situation.Pl3LocationXMinUplift = uplift.Pl3LocationXMinUplift; - situation.Pl4MinUplift = uplift.Pl4MinUplift; - situation.Pl4HeadAdjusted = uplift.Pl4HeadAdjusted; - situation.Pl4LocationXMinUplift = uplift.Pl4LocationXMinUplift; + 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.PipingDesignResults.UpliftSituation = situation; } } - private static void AddPointsToSurfaceLine(Io.XmlOutput.SurfaceLine inputSurfaceLine, SurfaceLine2 surfaceLine) + private static void AddPointsToSurfaceLine(SurfaceLine inputSurfaceLine, SurfaceLine2 surfaceLine) { surfaceLine.Geometry = new GeometryPointString(); for (int j = 0; j < inputSurfaceLine.Points.Length; j++) @@ -177,7 +188,7 @@ private static void CreateDesignResultsStabilityOutput(DesignResult designResult, Data.General.Results.DesignResult desResult) { - desResult.StabilityDesignResults = new Data.General.Results.StabilityDesignResults() + desResult.StabilityDesignResults = new StabilityDesignResults() { ResultMessage = designResult.StabilityDesignResults.ResultMessage }; @@ -232,62 +243,71 @@ { // Calculation results (per location) damProjectData.LocationJobs = new List(); -// var jobtel = 0; -// foreach (var outputLocationResult in output.Results.CalculationResults.LocationResults) -// { -// var locationJob = new LocationJob("hh"); -// // Stability TimeSerie (later) -// -// // Piping TimeSerie (later) -// -// // RegionalScenarios results -// outputLocationResult.RegionalScenariosResult = new CalculationResultsLocationResultRegionalScenariosResult(); -// outputLocationResult.RegionalScenariosResult.SafetyFactor = locationJob.LocationResult.RegionalScenariosResult.SafetyFactor; -// outputLocationResult.RegionalScenariosResult.CalculationResult = ConversionHelper.ConvertToOutputCalculationResult(locationJob.LocationResult.RegionalScenariosResult.CalculationResult); -// outputLocationResult.RegionalScenariosResult.RegionalScenarioResult = new RegionalScenarioResult[locationJob.LocationResult.RegionalScenariosResult.RegionalScenarioResults.Count]; -// var scentel = 0; -// foreach (var rwScenarioResult in locationJob.LocationResult.RegionalScenariosResult.RegionalScenarioResults) -// { -// var outputRwScenarioResult = new RegionalScenarioResult(); -// outputRwScenarioResult.LoadSituation = ConversionHelper.ConvertToOutputLoadSituation(rwScenarioResult.LoadSituation); -// outputRwScenarioResult.DikeDrySensitivity = ConversionHelper.ConvertToOutputDikeDrySensitivity(rwScenarioResult.DikeDrySensitivity); -// outputRwScenarioResult.HydraulicShortcutType = ConversionHelper.ConvertToOutputHydraulicShortcutType(rwScenarioResult.HydraulicShortcutType); -// outputRwScenarioResult.UpliftType = ConversionHelper.ConvertToOutputUpliftType(rwScenarioResult.UpliftType); -// outputRwScenarioResult.ModelOption = ConversionHelper.ConvertToOutputMStabModelType(rwScenarioResult.ModelOption); -// outputRwScenarioResult.ScenarioType = ConversionHelper.ConvertToOutputScenarioType(rwScenarioResult.ScenarioType); -// outputRwScenarioResult.CalculationResult = ConversionHelper.ConvertToOutputCalculationResult(rwScenarioResult.CalculationResult); -// outputRwScenarioResult.SafetyFactor = rwScenarioResult.SafetyFactor; -// outputRwScenarioResult.RegionalScenarioProfileResults = new RegionalScenarioResultRegionalScenarioProfileResult[rwScenarioResult.RegionalScenarioProfileResults.Count]; -// var proftel = 0; -// foreach (var profileResult in rwScenarioResult.RegionalScenarioProfileResults) -// { -// var outputProfileResult = new RegionalScenarioResultRegionalScenarioProfileResult(); -// outputProfileResult.LocationName = profileResult.LocationName; -// outputProfileResult.LoadSituation = ConversionHelper.ConvertToOutputLoadSituation(profileResult.LoadSituation); -// outputProfileResult.DikeDrySensitivity = ConversionHelper.ConvertToOutputDikeDrySensitivity(profileResult.DikeDrySensitivity); -// outputProfileResult.HydraulicShortcutType = ConversionHelper.ConvertToOutputHydraulicShortcutType(profileResult.HydraulicShortcutType); -// outputProfileResult.UpliftType = ConversionHelper.ConvertToOutputUpliftType(profileResult.UpliftType); -// outputProfileResult.MStabModelOption = ConversionHelper.ConvertToOutputMStabModelType(profileResult.MstabModelOption); -// outputProfileResult.PipingModelOption = ConversionHelper.ConvertToOutputPipingModelType(profileResult.PipingModelOption); -// outputProfileResult.ScenarioType = ConversionHelper.ConvertToOutputScenarioType(profileResult.ScenarioType); -// outputProfileResult.SoilProfileName = profileResult.SoilProfileName; -// outputProfileResult.SoilProfileProbability = profileResult.SoilProfileProbability; -// outputProfileResult.FailureMechanismType = ConversionHelper.ConvertToInputFailureMechanismSystemType(profileResult.FailureMechanismType); -// outputProfileResult.BaseFileName = profileResult.BaseFileName; -// outputProfileResult.RegionalResult = new RegionalResult(); -// outputProfileResult.RegionalResult.RegionalResultType = ConversionHelper.ConvertToOutputRegionalResultType(profileResult.RegionalResultType); -// outputProfileResult.RegionalResult.SafetyFactor = profileResult.SafetyFactor; -// outputProfileResult.RegionalResult.ProbabilityOfFailure = profileResult.ProbabilityOfFailure; -// outputProfileResult.RegionalResult.CalculationResult = ConversionHelper.ConvertToOutputCalculationResult(profileResult.CalculationResult); -// outputLocationResult.RegionalScenariosResult.RegionalScenarioResult[scentel].RegionalScenarioProfileResults[proftel] = outputProfileResult; -// proftel++; -// } -// outputLocationResult.RegionalScenariosResult.RegionalScenarioResult[scentel] = outputRwScenarioResult; -// scentel++; -// } -// output.Results.CalculationResults.LocationResults[jobtel] = outputLocationResult; -// jobtel++; -// } + foreach (var outputLocationResult in output.Results.CalculationResults.LocationResults) + { + var locationJob = new LocationJob(null) + { + LocationResult = new LocationResult() + }; + + Location location = null; + if (outputLocationResult.RegionalScenariosResult != null) + { + locationJob.LocationResult.RegionalScenariosResult = new RegionalScenariosResult + { + CalculationResult = ConversionHelper.ConvertToCalculationResult(outputLocationResult.RegionalScenariosResult.CalculationResult), + SafetyFactor = outputLocationResult.RegionalScenariosResult.SafetyFactor + }; + var regionalScenarioResults = new List(); + foreach (var outPutRegionalScenarioResult in outputLocationResult.RegionalScenariosResult.RegionalScenarioResult) + { + var regionalScenarioResult = new Data.RegionalAssessmentResults.RegionalScenarioResult + { + CalculationResult = ConversionHelper.ConvertToCalculationResult(outPutRegionalScenarioResult.CalculationResult), + DikeDrySensitivity = ConversionHelper.ConvertToDikeDrySensitivity(outPutRegionalScenarioResult.DikeDrySensitivity), + HydraulicShortcutType = ConversionHelper.ConvertToHydraulicShortcutType(outPutRegionalScenarioResult.HydraulicShortcutType), + LoadSituation = ConversionHelper.ConvertToLoadSituation(outPutRegionalScenarioResult.LoadSituation), + ModelOption = ConversionHelper.ConvertToMStabModelType(outPutRegionalScenarioResult.ModelOption), + SafetyFactor = outPutRegionalScenarioResult.SafetyFactor, + ScenarioType = ConversionHelper.ConvertToScenarioType(outPutRegionalScenarioResult.ScenarioType), + UpliftType = ConversionHelper.ConvertToUpliftType(outPutRegionalScenarioResult.UpliftType) + }; + var regionalScenarioProfileResults = new List(); + foreach (var outPutRegionalScenarioProfileResult in outPutRegionalScenarioResult.RegionalScenarioProfileResults) + { + + var locationName = outPutRegionalScenarioProfileResult.LocationName; + location = damProjectData.Dike.Locations.FirstOrDefault(x => x.Name == locationName); + var spName = outPutRegionalScenarioProfileResult.SoilProfileName; + var soilGeometryProbability = location.Segment.SoilProfileProbabilities.FirstOrDefault(s => ((s.SegmentFailureMechanismType == null) || + (s.SegmentFailureMechanismType.Value == FailureMechanismSystemType.StabilityInside)) && + (s.SoilProfile1DName == spName)); + var regionalScenarioProfileResult = new RegionalScenarioProfileResult(location, soilGeometryProbability) + { + LoadSituation = ConversionHelper.ConvertToLoadSituation(outPutRegionalScenarioProfileResult.LoadSituation), + DikeDrySensitivity = ConversionHelper.ConvertToDikeDrySensitivity(outPutRegionalScenarioProfileResult.DikeDrySensitivity), + HydraulicShortcutType = ConversionHelper.ConvertToHydraulicShortcutType(outPutRegionalScenarioProfileResult.HydraulicShortcutType), + UpliftType = ConversionHelper.ConvertToUpliftType(outPutRegionalScenarioProfileResult.UpliftType), + MstabModelOption = ConversionHelper.ConvertToMStabModelType(outPutRegionalScenarioProfileResult.MStabModelOption), + PipingModelOption = ConversionHelper.ConvertToPipingModelType(outPutRegionalScenarioProfileResult.PipingModelOption), + ScenarioType = ConversionHelper.ConvertToScenarioType(outPutRegionalScenarioProfileResult.ScenarioType), + FailureMechanismType = ConversionHelper.ConvertToFailureMechanismSystemType(outPutRegionalScenarioProfileResult.FailureMechanismType), + BaseFileName = outPutRegionalScenarioProfileResult.BaseFileName, + RegionalResultType = ConversionHelper.ConvertToRegionalResultType(outPutRegionalScenarioProfileResult.RegionalResult.RegionalResultType), + SafetyFactor = outPutRegionalScenarioProfileResult.RegionalResult.SafetyFactor, + ProbabilityOfFailure = outPutRegionalScenarioProfileResult.RegionalResult.ProbabilityOfFailure, + CalculationResult = ConversionHelper.ConvertToCalculationResult(outPutRegionalScenarioProfileResult.RegionalResult.CalculationResult) + }; + regionalScenarioProfileResults.Add(regionalScenarioProfileResult); + } + regionalScenarioResult.RegionalScenarioProfileResults.AddRange(regionalScenarioProfileResults); + regionalScenarioResults.Add(regionalScenarioResult); + } + locationJob.LocationResult.RegionalScenariosResult.RegionalScenarioResults.AddRange(regionalScenarioResults); + } + locationJob.Location = location; + damProjectData.LocationJobs.Add(locationJob); + } } } }