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