/// <summary> /// Creates a collection of <see cref="CalculatableActivity"/> for all relevant hydraulic load calculations /// in the given <see cref="AssessmentSection"/>. /// </summary> /// <param name="assessmentSection">The assessment section to create the activities for.</param> /// <returns>A collection of <see cref="CalculatableActivity"/>.</returns> /// <exception cref="ArgumentNullException">Thrown when <paramref name="assessmentSection"/> is <c>null</c>.</exception> public static IEnumerable <CalculatableActivity> CreateHydraulicLoadCalculationActivities(AssessmentSection assessmentSection) { if (assessmentSection == null) { throw new ArgumentNullException(nameof(assessmentSection)); } var activities = new List <CalculatableActivity>(); activities.AddRange(AssessmentSectionHydraulicBoundaryLocationCalculationActivityFactory.CreateHydraulicBoundaryLocationCalculationActivities( assessmentSection)); activities.AddRange(StabilityStoneCoverWaveConditionsCalculationActivityFactory.CreateCalculationActivities( assessmentSection.StabilityStoneCover, assessmentSection)); activities.AddRange(WaveImpactAsphaltCoverWaveConditionsCalculationActivityFactory.CreateCalculationActivities( assessmentSection.WaveImpactAsphaltCover, assessmentSection)); activities.AddRange(GrassCoverErosionOutwardsCalculationActivityFactory.CreateWaveConditionsCalculationActivities( assessmentSection.GrassCoverErosionOutwards.CalculationsGroup, assessmentSection.GrassCoverErosionOutwards, assessmentSection)); activities.AddRange(DuneLocationCalculationActivityFactory.CreateCalculationActivities( assessmentSection.DuneErosion, assessmentSection)); return(activities); }
private ContextMenuStrip HydraulicLoadsStateFailureMechanismContextMenuStrip(HydraulicLoadsStateFailureMechanismContext context, object parentData, TreeViewControl treeViewControl) { var builder = new RiskeerContextMenuBuilder(Gui.Get(context, treeViewControl)); IAssessmentSection assessmentSection = context.Parent; var calculateAllItem = new StrictContextMenuItem( RiskeerCommonFormsResources.Calculate_All, RiskeerCommonFormsResources.Calculate_All_ToolTip, RiskeerCommonFormsResources.CalculateAllIcon, (sender, args) => { ActivityProgressDialogRunner.Run( Gui.MainWindow, GrassCoverErosionOutwardsCalculationActivityFactory .CreateWaveConditionsCalculationActivities(context.WrappedData.CalculationsGroup, context.WrappedData, assessmentSection)); }); SetHydraulicsMenuItemEnabledStateAndTooltip(assessmentSection, calculateAllItem); return(builder.AddOpenItem() .AddSeparator() .AddCustomItem(calculateAllItem) .AddSeparator() .AddCollapseAllItem() .AddExpandAllItem() .AddSeparator() .AddPropertiesItem() .Build()); }
private void CalculateAllInCalculationGroup(GrassCoverErosionOutwardsCalculationGroupContext context) { ActivityProgressDialogRunner.Run( Gui.MainWindow, GrassCoverErosionOutwardsCalculationActivityFactory.CreateWaveConditionsCalculationActivities(context.WrappedData, context.FailureMechanism, context.AssessmentSection)); }
public void CreateWaveConditionsCalculationActivitiesForCalculationGroup_AssessmentSectionNull_ThrowsArgumentNullException() { // Call void Call() => GrassCoverErosionOutwardsCalculationActivityFactory.CreateWaveConditionsCalculationActivities( new CalculationGroup(), new GrassCoverErosionOutwardsFailureMechanism(), null); // Assert var exception = Assert.Throws <ArgumentNullException>(Call); Assert.AreEqual("assessmentSection", exception.ParamName); }
public void CreateWaveConditionsCalculationActivitiesForCalculationGroup_FailureMechanismNull_ThrowsArgumentNullException() { // Setup var mocks = new MockRepository(); var assessmentSection = mocks.Stub <IAssessmentSection>(); mocks.ReplayAll(); // Call void Call() => GrassCoverErosionOutwardsCalculationActivityFactory.CreateWaveConditionsCalculationActivities( new CalculationGroup(), null, assessmentSection); // Assert var exception = Assert.Throws <ArgumentNullException>(Call); Assert.AreEqual("failureMechanism", exception.ParamName); mocks.VerifyAll(); }
public void CreateWaveConditionsCalculationActivitiesForCalculationGroup_WithValidCalculations_ReturnsGrassCoverErosionOutwardsWaveConditionsCalculationActivitiesWithParametersSet() { // Setup GrassCoverErosionOutwardsFailureMechanism failureMechanism = new GrassCoverErosionOutwardsFailureMechanism(); var assessmentSection = new AssessmentSectionStub(); HydraulicBoundaryDatabase hydraulicBoundaryDatabase = assessmentSection.HydraulicBoundaryDatabase; hydraulicBoundaryDatabase.FilePath = validFilePath; var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation("locationName 1"); assessmentSection.SetHydraulicBoundaryLocationCalculations(new[] { hydraulicBoundaryLocation }, true); GrassCoverErosionOutwardsWaveConditionsCalculation calculation1 = CreateValidCalculation(hydraulicBoundaryLocation); GrassCoverErosionOutwardsWaveConditionsCalculation calculation2 = CreateValidCalculation(hydraulicBoundaryLocation); var calculations = new CalculationGroup { Children = { calculation1, calculation2 } }; // Call IEnumerable <CalculatableActivity> activities = GrassCoverErosionOutwardsCalculationActivityFactory.CreateWaveConditionsCalculationActivities( calculations, failureMechanism, assessmentSection); // Assert CollectionAssert.AllItemsAreInstancesOfType(activities, typeof(GrassCoverErosionOutwardsWaveConditionsCalculationActivity)); Assert.AreEqual(2, activities.Count()); RoundedDouble assessmentLevel = assessmentSection.WaterLevelCalculationsForSignalFloodingProbability.Single().Output.Result; AssertGrassCoverErosionOutwardsWaveConditionsCalculationActivity(activities.First(), calculation1, assessmentLevel, hydraulicBoundaryDatabase); AssertGrassCoverErosionOutwardsWaveConditionsCalculationActivity(activities.ElementAt(1), calculation2, assessmentLevel, hydraulicBoundaryDatabase); }