Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanismSection2aAssessmentResultExtensions.cs
===================================================================
diff -u -r00da0d2f72214f140bceff0eaae5f14172c587de -rffba5900acc192187346a9ad73acea5e8b9d0bf5
--- Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanismSection2aAssessmentResultExtensions.cs (.../PipingFailureMechanismSection2aAssessmentResultExtensions.cs) (revision 00da0d2f72214f140bceff0eaae5f14172c587de)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanismSection2aAssessmentResultExtensions.cs (.../PipingFailureMechanismSection2aAssessmentResultExtensions.cs) (revision ffba5900acc192187346a9ad73acea5e8b9d0bf5)
@@ -19,6 +19,7 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
+using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
@@ -85,15 +86,24 @@
/// All calculations in the failure mechanism.
/// Thrown when any of the relevant calculations
/// in has an invalid .
+ /// Thrown when any of the relevant scenarios has an unsupported value of .
public static CalculationScenarioStatus GetCalculationScenarioStatus(this PipingFailureMechanismSectionResult pipingFailureMechanismSectionResult,
IEnumerable calculations)
{
var failed = false;
var notCalculated = false;
foreach (PipingCalculationScenario calculationScenario in pipingFailureMechanismSectionResult.GetCalculationScenarios(calculations).Where(cs => cs.IsRelevant))
{
- switch (calculationScenario.Status)
+ CalculationScenarioStatus calculationScenarioStatus = calculationScenario.Status;
+ if (!Enum.IsDefined(typeof(CalculationScenarioStatus), calculationScenarioStatus))
{
+ throw new InvalidEnumArgumentException(nameof(pipingFailureMechanismSectionResult),
+ (int)calculationScenarioStatus,
+ typeof(CalculationScenarioStatus));
+ }
+
+ switch (calculationScenarioStatus)
+ {
case CalculationScenarioStatus.Failed:
failed = true;
break;
@@ -103,9 +113,7 @@
case CalculationScenarioStatus.Done:
continue;
default:
- throw new InvalidEnumArgumentException(nameof(pipingFailureMechanismSectionResult),
- (int) calculationScenario.Status,
- typeof(CalculationScenarioStatus));
+ throw new NotSupportedException($"The enum value {nameof(CalculationScenarioStatus)}.{calculationScenarioStatus} is not supported.");
}
}