Index: Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Service/DuneLocationCalculationActivityFactory.cs =================================================================== diff -u -r540bd460b8ff18e15862544116c1fd9dea3d2dae -r777a1ac52a04aa5b46ae4d43feecb97ada899bb3 --- Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Service/DuneLocationCalculationActivityFactory.cs (.../DuneLocationCalculationActivityFactory.cs) (revision 540bd460b8ff18e15862544116c1fd9dea3d2dae) +++ Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Service/DuneLocationCalculationActivityFactory.cs (.../DuneLocationCalculationActivityFactory.cs) (revision 777a1ac52a04aa5b46ae4d43feecb97ada899bb3) @@ -23,9 +23,11 @@ using System.Collections.Generic; using System.Linq; using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Data.Hydraulics; using Ringtoets.Common.Service; using Ringtoets.DuneErosion.Data; +using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.DuneErosion.Service { @@ -67,5 +69,61 @@ norm, categoryBoundaryName)).ToArray(); } + + /// + /// Creates a collection of based on . + /// + /// The failure mechanism to create activities for. + /// The assessment section the failure mechanism belongs to. + /// A collection of . + /// Thrown when or + /// is null. + public static IEnumerable CreateCalculationActivities(DuneErosionFailureMechanism failureMechanism, + IAssessmentSection assessmentSection) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + var activities = new List(); + + activities.AddRange(CreateCalculationActivities( + failureMechanism.CalculationsForMechanismSpecificFactorizedSignalingNorm, + assessmentSection, + failureMechanism.GetNorm(assessmentSection, FailureMechanismCategoryType.MechanismSpecificFactorizedSignalingNorm), + RingtoetsCommonDataResources.FailureMechanismCategoryType_MechanismSpecificFactorizedSignalingNorm_DisplayName)); + + activities.AddRange(CreateCalculationActivities( + failureMechanism.CalculationsForMechanismSpecificSignalingNorm, + assessmentSection, + failureMechanism.GetNorm(assessmentSection, FailureMechanismCategoryType.MechanismSpecificSignalingNorm), + RingtoetsCommonDataResources.FailureMechanismCategoryType_MechanismSpecificSignalingNorm_DisplayName)); + + activities.AddRange(CreateCalculationActivities( + failureMechanism.CalculationsForMechanismSpecificLowerLimitNorm, + assessmentSection, + failureMechanism.GetNorm(assessmentSection, FailureMechanismCategoryType.MechanismSpecificLowerLimitNorm), + RingtoetsCommonDataResources.FailureMechanismCategoryType_MechanismSpecificLowerLimitNorm_DisplayName)); + + activities.AddRange(CreateCalculationActivities( + failureMechanism.CalculationsForLowerLimitNorm, + assessmentSection, + failureMechanism.GetNorm(assessmentSection, FailureMechanismCategoryType.LowerLimitNorm), + RingtoetsCommonDataResources.FailureMechanismCategoryType_LowerLimitNorm_DisplayName)); + + activities.AddRange(CreateCalculationActivities( + failureMechanism.CalculationsForFactorizedLowerLimitNorm, + assessmentSection, + failureMechanism.GetNorm(assessmentSection, FailureMechanismCategoryType.FactorizedLowerLimitNorm), + RingtoetsCommonDataResources.FailureMechanismCategoryType_FactorizedLowerLimitNorm_DisplayName)); + + return activities; + } } } \ No newline at end of file