Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/HydraRingCalculatorBase.cs
===================================================================
diff -u -rbd73023d5f8926a411da214fb5ce522056a0e30a -re9ed7ace8ecabdee49a6635bf43b1fbb3613a090
--- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/HydraRingCalculatorBase.cs (.../HydraRingCalculatorBase.cs) (revision bd73023d5f8926a411da214fb5ce522056a0e30a)
+++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/HydraRingCalculatorBase.cs (.../HydraRingCalculatorBase.cs) (revision e9ed7ace8ecabdee49a6635bf43b1fbb3613a090)
@@ -35,7 +35,7 @@
///
internal abstract class HydraRingCalculatorBase
{
- private readonly HydraRingOutputFileParser outputFileParser;
+ private readonly LastErrorFileParser lastErrorFileParser;
private Process hydraRingProcess;
private readonly string hlcdDirectory;
@@ -57,15 +57,20 @@
this.hlcdDirectory = hlcdDirectory;
this.ringId = ringId;
- outputFileParser = new HydraRingOutputFileParser();
+ lastErrorFileParser = new LastErrorFileParser();
}
///
- /// The content of the output file produced during calculation.
+ /// Gets the directory of the output used during the calculation.
///
public string OutputDirectory { get; private set; }
///
+ /// Gets the content of the last error file when it is generated during the calculation.
+ ///
+ public string LastErrorContent { get; private set; }
+
+ ///
/// Cancels any currently running Hydra-Ring calculation.
///
public void Cancel()
@@ -110,30 +115,24 @@
hydraRingConfigurationService.WriteDataBaseCreationScript(hydraRingInitializationService.DatabaseCreationScriptFilePath);
PerformCalculation(OutputDirectory, hydraRingInitializationService);
- ExecuteParsers(hydraRingInitializationService.TemporaryWorkingDirectory, sectionId);
- SetAllOutputs();
+ ExecuteGenericParsers(hydraRingInitializationService, sectionId);
+ ExecuteCustomParsers(hydraRingInitializationService.TemporaryWorkingDirectory, sectionId);
}
- private void SetAllOutputs()
+ private void ExecuteGenericParsers(HydraRingInitializationService hydraRingInitializationService, int sectionId)
{
- SetOutputs();
+ lastErrorFileParser.Parse(hydraRingInitializationService.TemporaryWorkingDirectory, sectionId);
+ LastErrorContent = lastErrorFileParser.ErrorFileContent;
}
- private IEnumerable GetAllParsers()
+ private void ExecuteCustomParsers(string temporaryWorkingDirectory, int sectionId)
{
- yield return outputFileParser;
foreach (var parser in GetParsers())
{
- yield return parser;
- }
- }
-
- private void ExecuteParsers(string temporaryWorkingDirectory, int sectionId)
- {
- foreach (var parser in GetAllParsers())
- {
parser.Parse(temporaryWorkingDirectory, sectionId);
}
+
+ SetOutputs();
}
private void PerformCalculation(string workingDirectory, HydraRingInitializationService hydraRingInitializationService)