Index: DamClients/DamLive/trunk/src/Deltares.Dam.Application.Live/DamEngineRunner.cs
===================================================================
diff -u -r1630 -r1638
--- DamClients/DamLive/trunk/src/Deltares.Dam.Application.Live/DamEngineRunner.cs (.../DamEngineRunner.cs) (revision 1630)
+++ DamClients/DamLive/trunk/src/Deltares.Dam.Application.Live/DamEngineRunner.cs (.../DamEngineRunner.cs) (revision 1638)
@@ -4,8 +4,10 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using System.Xml.Linq;
using Deltares.Dam.Application.Live.Properties;
using Deltares.Dam.Data;
+using Deltares.Dam.Data.Assemblers;
using Deltares.Dam.Data.DamEngineIo;
using Deltares.DamEngine.Interface;
using Deltares.DamEngine.Io;
@@ -56,8 +58,43 @@
}
+ ///
+ /// Initializes this instance.
+ ///
+ ///
+ ///
public void Initialize()
{
+ LoadDataFromFiles();
+
+ AdaptDamProjectData();
+ }
+
+ private void AdaptDamProjectData()
+ {
+ // Prepare DamProjetData for serializing to Dam Engine
+ DamProjectData.SelectedLocationJobs.Clear();
+ foreach (Data.Location location in DamProjectData.Locations)
+ {
+ var locationJob = new LocationJob()
+ {
+ Location = location,
+ Run = true
+ };
+ DamProjectData.LocationJobs.Add(locationJob);
+ }
+ DamProjectData.FillOverallSensorData();
+
+ // Add time series to DamProjectData
+ DamProjectData.InputTimeSerieCollection = InputTimeSeriesCollection;
+
+ // Set correct calculation settings
+ DamProjectData.DamProjectType = DamProjectType.Calamity;
+
+ }
+
+ private void LoadDataFromFiles()
+ {
if (DamProjectData == null)
{
if (DamXFile == null)
@@ -88,30 +125,57 @@
// Read calculation parameters, if available
CalculationParameters = CalculationParameters.LoadFromFile(ParametersFile);
}
+ }
- // Prepare DamProjetData for serializing to Dam Engine
- DamProjectData.SelectedLocationJobs.Clear();
- foreach (Data.Location location in DamProjectData.Locations)
+ public void Run()
+ {
+ Initialize();
+ OutputTimeSeriesCollection.Series.Clear();
+ RunStabilityInside();
+ CheckForNotImplementedModels();
+ WriteResultsToFile(FewsOutputFile.FullName);
+ }
+
+ private void CheckForNotImplementedModels()
+ {
+ if (CalculationParameters.CalculationModules.Overtopping)
{
- var locationJob = new LocationJob()
- {
- Location = location, Run = true
- };
- DamProjectData.LocationJobs.Add(locationJob);
+ Logger.LogError("Calculation module Overtopping not implemented yet");
}
- DamProjectData.FillOverallSensorData();
-
- // Add timeseries
- DamProjectData.InputTimeSerieCollection = InputTimeSeriesCollection;
+ if (CalculationParameters.CalculationModules.PipingBligh)
+ {
+ Logger.LogError("Calculation module PipingBligh not implemented yet");
+ }
+ if (CalculationParameters.CalculationModules.PipingIJkdijk)
+ {
+ Logger.LogError("Calculation module PipingIJkdijk not implemented yet");
+ }
+ if (CalculationParameters.CalculationModules.PipingSellmeijer)
+ {
+ Logger.LogError("Calculation module PipingSellmeijer not implemented yet");
+ }
+ if (CalculationParameters.CalculationModules.PipingSellmeijerProbabilistic)
+ {
+ Logger.LogError("Calculation module PipingSellmeijerProbabilistic not implemented yet");
+ }
+ if (CalculationParameters.CalculationModules.PipingWti)
+ {
+ Logger.LogError("Calculation module PipingWti not implemented yet");
+ }
+ if (CalculationParameters.CalculationModules.StabilityOutside)
+ {
+ Logger.LogError("Calculation module StabilityOutside not implemented yet");
+ }
}
- public void Run()
+ private void RunStabilityInside()
{
- Initialize();
- // CreateAndSetWorkingDirectories();
- // DeleteFormerProjectFiles();
- CallDamEngine();
- // WriteResultsToFile(FewsOutputFile.FullName);
+ if (CalculationParameters.CalculationModules.Stability)
+ {
+ DamProjectData.DamProjectCalculationSpecification.CurrentSpecification.FailureMechanismSystemType = FailureMechanismSystemType.StabilityInside;
+ CallDamEngine();
+ OutputTimeSeriesCollection.Series.AddRange(DamProjectData.OutputTimeSerieCollection.Series);
+ }
}
private void CallDamEngine()
@@ -148,5 +212,23 @@
LogManager.Add(new LogMessage(LogMessageType.FatalError, typeof(EngineInterface), string.Format("{0}", e.Message)));
}
}
+ protected void WriteResultsToFile(string fileName)
+ {
+ if (string.IsNullOrWhiteSpace(fileName))
+ throw new ArgumentNullException("fileName");
+
+ var timeSerieAssembler = new TimeSeriesAssembler();
+ XDocument doc = timeSerieAssembler.CreateDataTransferDocument(OutputTimeSeriesCollection);
+
+ try
+ {
+ doc.Save(fileName);
+ FileWriterUtil.RemoveThreeBytesFromXml(fileName);
+ }
+ catch (Exception e)
+ {
+ Logger.LogError("Could not export Fews xml file", e);
+ }
+ }
}
}
Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillXmlInputFromDamUi.cs
===================================================================
diff -u -r1634 -r1638
--- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillXmlInputFromDamUi.cs (.../FillXmlInputFromDamUi.cs) (revision 1634)
+++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillXmlInputFromDamUi.cs (.../FillXmlInputFromDamUi.cs) (revision 1638)
@@ -215,18 +215,19 @@
Mean = timestepEntry.StochastValue.Mean,
StandardDeviation = timestepEntry.StochastValue.StandardDeviation
};
- TimeSerieEntriesTimeSerieEntry timeStep = new TimeSerieEntriesTimeSerieEntry()
- {
- DateTime = timestepEntry.DateTime,
- Value = timestepEntry.Value,
- BasisFileNameWMF = timestepEntry.BasisFileName,
- Flagnietechtgebruikt = timestepEntry.Flag,
- RelativeCalculationPathName = timestepEntry.RelativeCalculationPathName,
- StochastValue = stochastValue
- };
- inputTimeSerie.Entries.TimeSerieEntry[timeSerieEntryIndex] = timeStep;
- timeSerieEntryIndex++;
}
+ TimeSerieEntriesTimeSerieEntry timeStep = new TimeSerieEntriesTimeSerieEntry()
+ {
+ DateTime = timestepEntry.DateTime,
+ Value = timestepEntry.Value,
+ BasisFileNameWMF = timestepEntry.BasisFileName,
+ Flagnietechtgebruikt = timestepEntry.Flag,
+ RelativeCalculationPathName = timestepEntry.RelativeCalculationPathName,
+ StochastValue = stochastValue
+ };
+ inputTimeSerie.Entries.TimeSerieEntry[timeSerieEntryIndex] = timeStep;
+ timeSerieEntryIndex++;
+
}
operationalInputTimeSeries[timeSerieIndex] = inputTimeSerie;
timeSerieIndex++;