Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/PipingCalculationConfigurationHelper.cs =================================================================== diff -u -r0a3678eabc5460352ffbfff25a9dca65edfef546 -r5782c43794d78fe92cd8864cd8f8b0b53957ec06 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/PipingCalculationConfigurationHelper.cs (.../PipingCalculationConfigurationHelper.cs) (revision 0a3678eabc5460352ffbfff25a9dca65edfef546) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/PipingCalculationConfigurationHelper.cs (.../PipingCalculationConfigurationHelper.cs) (revision 5782c43794d78fe92cd8864cd8f8b0b53957ec06) @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Linq; using Core.Common.Base.Geometry; using Ringtoets.Common.Forms.Helpers; @@ -19,17 +20,37 @@ /// Surface lines to generate the structure for and to use to configure /// with. /// The soil models from which profiles are taken to configure with. - /// - /// - /// + /// General input to assign to each generated piping calculation. + /// Semi probabilistic input to assign to each generated piping calculation. + /// A structure or matching combinations of and + /// profiles of intersecting . + /// Throw when either: + /// + /// is null + /// is null + /// is null + /// is null + /// public static IEnumerable GenerateCalculationsStructure(IEnumerable surfaceLines, IEnumerable soilModels, GeneralPipingInput generalInput, SemiProbabilisticPipingInput semiProbabilisticInput) { if (surfaceLines == null) { - return Enumerable.Empty(); + throw new ArgumentNullException("surfaceLines"); } - var pipingCalculationGroups = surfaceLines.Select(sl => CreateCalculationGroup(sl, soilModels, generalInput, semiProbabilisticInput)); - return pipingCalculationGroups; + if (soilModels == null) + { + throw new ArgumentNullException("soilModels"); + } + if (generalInput == null) + { + throw new ArgumentNullException("generalInput"); + } + if (semiProbabilisticInput == null) + { + throw new ArgumentNullException("semiProbabilisticInput"); + } + + return surfaceLines.Select(sl => CreateCalculationGroup(sl, soilModels, generalInput, semiProbabilisticInput)); } /// @@ -63,12 +84,10 @@ private static IPipingCalculationItem CreateCalculationGroup(RingtoetsPipingSurfaceLine surfaceLine, IEnumerable soilModels, GeneralPipingInput generalInput, SemiProbabilisticPipingInput semiProbabilisticInput) { var pipingCalculationGroup = new PipingCalculationGroup(surfaceLine.Name, true); - if (soilModels != null) + + foreach (var profile in GetPipingSoilProfilesForSurfaceLine(surfaceLine, soilModels)) { - foreach (var profile in GetPipingSoilProfilesForSurfaceLine(surfaceLine, soilModels)) - { - pipingCalculationGroup.Children.Add(CreatePipingCalculation(surfaceLine, profile, pipingCalculationGroup.Children, generalInput, semiProbabilisticInput)); - } + pipingCalculationGroup.Children.Add(CreatePipingCalculation(surfaceLine, profile, pipingCalculationGroup.Children, generalInput, semiProbabilisticInput)); } return pipingCalculationGroup;