Index: Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingInputSynchronizer.cs =================================================================== diff -u -rc0a3ced404197fd781c6fcbcfc21c6676592be57 -r8b85f978c7bbe5c29a6ada6509f14d0462b8b9c3 --- Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingInputSynchronizer.cs (.../PipingInputSynchronizer.cs) (revision c0a3ced404197fd781c6fcbcfc21c6676592be57) +++ Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingInputSynchronizer.cs (.../PipingInputSynchronizer.cs) (revision 8b85f978c7bbe5c29a6ada6509f14d0462b8b9c3) @@ -1,12 +1,17 @@ using System; using Core.Common.Base; using Core.Common.Base.Data; +using Core.Common.Base.Properties; +using log4net; using Ringtoets.Piping.Data; +using Resources = Ringtoets.Piping.Service.Properties.Resources; namespace Ringtoets.Piping.Service { public class PipingInputSynchronizer : IObserver { + private static readonly ILog log = LogManager.GetLogger(typeof(PipingInputSynchronizer)); + private const double seepageLengthStandardDeviationFraction = 0.1; private readonly PipingInput input; @@ -52,23 +57,35 @@ RingtoetsPipingSurfaceLine surfaceLine = input.SurfaceLine; double exitPointL = input.ExitPointL; - double thicknessTopAquiferLayer = GetThicknessTopAquiferLayer(soilProfile, surfaceLine, exitPointL); - TrySetThicknessAquiferLayerMean(input, thicknessTopAquiferLayer); + if (soilProfile != null && surfaceLine != null && !double.IsNaN(exitPointL)) + { + double thicknessTopAquiferLayer = GetThicknessTopAquiferLayer(soilProfile, surfaceLine, exitPointL); + TrySetThicknessAquiferLayerMean(input, thicknessTopAquiferLayer); + + if (double.IsNaN(input.ThicknessAquiferLayer.Mean)) + { + log.Warn(Resources.PipingInputSynchronizer_UpdateThicknessAquiferLayer_Cannot_determine_thickness_aquifer_layer); + } + } + else + { + input.ThicknessAquiferLayer.Mean = (RoundedDouble) double.NaN; + } } - private static double GetThicknessTopAquiferLayer(PipingSoilProfile soilProfile, RingtoetsPipingSurfaceLine surfaceLine, double exitPointL) + private static void TrySetThicknessAquiferLayerMean(PipingInput input, double thicknessTopAquiferLayer) { - var thicknessTopAquiferLayer = double.NaN; - - if (soilProfile != null && surfaceLine != null && !double.IsNaN(exitPointL)) + try { - thicknessTopAquiferLayer = TryGetThicknessTopAquiferLayer(soilProfile, surfaceLine, exitPointL); + input.ThicknessAquiferLayer.Mean = (RoundedDouble) thicknessTopAquiferLayer; } - - return thicknessTopAquiferLayer; + catch (ArgumentOutOfRangeException) + { + input.ThicknessAquiferLayer.Mean = (RoundedDouble) double.NaN; + } } - private static double TryGetThicknessTopAquiferLayer(PipingSoilProfile soilProfile, RingtoetsPipingSurfaceLine surfaceLine, double exitPointL) + private static double GetThicknessTopAquiferLayer(PipingSoilProfile soilProfile, RingtoetsPipingSurfaceLine surfaceLine, double exitPointL) { try { @@ -81,27 +98,32 @@ } } - private static void TrySetThicknessAquiferLayerMean(PipingInput input, double thicknessTopAquiferLayer) + private void UpdateThicknessCoverageLayer() { - try + if (input.SurfaceLine != null && input.SoilProfile != null & !double.IsNaN(input.ExitPointL)) { - input.ThicknessAquiferLayer.Mean = (RoundedDouble) thicknessTopAquiferLayer; + TrySetThicknessCoverageLayer(); + + if (double.IsNaN(input.ThicknessCoverageLayer.Mean)) + { + log.Warn(Resources.PipingInputSynchronizer_UpdateThicknessCoverageLayer_Cannot_determine_thickness_coverage_layer); + } } - catch (ArgumentOutOfRangeException) + else { - input.ThicknessAquiferLayer.Mean = (RoundedDouble) double.NaN; + input.ThicknessCoverageLayer.Mean = (RoundedDouble)double.NaN; } } - private void UpdateThicknessCoverageLayer() + private void TrySetThicknessCoverageLayer() { try { - input.ThicknessCoverageLayer.Mean = (RoundedDouble) PipingCalculationService.CalculateThicknessCoverageLayer(input); + input.ThicknessCoverageLayer.Mean = (RoundedDouble)PipingCalculationService.CalculateThicknessCoverageLayer(input); } catch (ArgumentOutOfRangeException) { - input.ThicknessCoverageLayer.Mean = (RoundedDouble) double.NaN; + input.ThicknessCoverageLayer.Mean = (RoundedDouble)double.NaN; } }