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); + } } } }