Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/FileImporter/RingtoetsPipingSurfaceLineUpdateDataStrategy.cs =================================================================== diff -u -r583456a0f5395189a54a8cedf4e4a7b40945d990 -r7d572f6fd93d08cbdc472dd334ed3655b5d7ae36 --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/FileImporter/RingtoetsPipingSurfaceLineUpdateDataStrategy.cs (.../RingtoetsPipingSurfaceLineUpdateDataStrategy.cs) (revision 583456a0f5395189a54a8cedf4e4a7b40945d990) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/FileImporter/RingtoetsPipingSurfaceLineUpdateDataStrategy.cs (.../RingtoetsPipingSurfaceLineUpdateDataStrategy.cs) (revision 7d572f6fd93d08cbdc472dd334ed3655b5d7ae36) @@ -23,6 +23,7 @@ using System.Collections.Generic; using System.Linq; using Core.Common.Base; +using Core.Common.Base.Data; using Ringtoets.Common.Data.UpdateDataStrategies; using Ringtoets.Common.Service; using Ringtoets.Piping.Data; @@ -101,6 +102,8 @@ affectedObjects.AddRange(UpdateSurfaceLineDependentData(surfaceLineToUpdate)); affectedObjects.AddRange(UpdateStochasticSoilModel(surfaceLineToUpdate)); + + ValidateEntryAndExitPoints(surfaceLineToUpdate); } return affectedObjects; @@ -153,6 +156,28 @@ failureMechanism.StochasticSoilModels); } + private void ValidateEntryAndExitPoints(RingtoetsPipingSurfaceLine surfaceLine) + { + IEnumerable affectedCalculations = GetAffectedCalculationWithSurfaceLine(surfaceLine); + foreach (PipingCalculation affectedCalculation in affectedCalculations) + { + PipingInput inputParameters = affectedCalculation.InputParameters; + if (!ValidateLocalCoordinateOnSurfaceLine(surfaceLine, inputParameters.EntryPointL)) + { + inputParameters.EntryPointL = RoundedDouble.NaN; + } + if (!ValidateLocalCoordinateOnSurfaceLine(surfaceLine, inputParameters.ExitPointL)) + { + inputParameters.ExitPointL = RoundedDouble.NaN; + } + } + } + + private static bool ValidateLocalCoordinateOnSurfaceLine(RingtoetsPipingSurfaceLine surfaceLine, double localCoordinateL) + { + return surfaceLine.ValidateInRange(localCoordinateL); + } + #endregion #region Removing Data Functions