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)