using Deltares.AssessmentMechanism; namespace Deltares.Stability.Calculation2 { public class StabilitySafetyFactorCalculation : AssessmentCalculation { public override AssessmentCalculationResult Execute(DikeLocationInfo dikeLocationInfo) { var stabilityDikeLocationInfo = (StabilityDikeLocationInfo) dikeLocationInfo; var location = stabilityDikeLocationInfo.Location; if (!double.IsNaN(dikeLocationInfo.DikeLocation.AssessmentLevel)) { location.WaterLevelRiver = dikeLocationInfo.DikeLocation.AssessmentLevel; } var calculation = new StabilityCalculation(); calculation.RunCalculation(stabilityDikeLocationInfo.StabilityModel); var result = new AssessmentCalculationResult { FactorOfSafety = stabilityDikeLocationInfo.SlidingCurve != null ? stabilityDikeLocationInfo.SlidingCurve.SafetyFactor : double.NaN, Approved = stabilityDikeLocationInfo.SlidingCurve != null && stabilityDikeLocationInfo.SlidingCurve.SafetyFactor >= 1, ZValue = stabilityDikeLocationInfo.SlidingCurve != null ? stabilityDikeLocationInfo.SlidingCurve.SafetyFactor - 1 : double.NaN, Calculated = stabilityDikeLocationInfo.SlidingCurve != null }; return result; } } }