Index: src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Forms/NodePresenters/PipingFailureMechanismNodePresenter.cs =================================================================== diff -u -re5a53456f16d530cb56abb35a256d8cf1f91df3d -r2f6a4919a4b3a16f09d7da1c09223335eb261692 --- src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Forms/NodePresenters/PipingFailureMechanismNodePresenter.cs (.../PipingFailureMechanismNodePresenter.cs) (revision e5a53456f16d530cb56abb35a256d8cf1f91df3d) +++ src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Forms/NodePresenters/PipingFailureMechanismNodePresenter.cs (.../PipingFailureMechanismNodePresenter.cs) (revision 2f6a4919a4b3a16f09d7da1c09223335eb261692) @@ -3,6 +3,7 @@ using System.ComponentModel; using System.Windows.Forms; using DelftTools.Controls; +using DelftTools.Shell.Core.Workflow; using DelftTools.Utils.Collections; using Ringtoets.Piping.Data; @@ -26,6 +27,11 @@ } } + /// + /// Injection points for a method to cause an to be scheduled for execution. + /// + public Action RunActivityAction { private get; set; } + public void UpdateNode(ITreeNode parentNode, ITreeNode node, object nodeData) { node.Text = Resources.PipingFailureMechanismDisplayName; @@ -89,7 +95,8 @@ { var rootMenu = new ContextMenuStrip(); - rootMenu.AddMenuItem("Berekening toevoegen", "Voeg een nieuwe piping berekening toe aan het faalmechanisme.", + rootMenu.AddMenuItem(Resources.PipingFailureMechanism_Add_piping_calculation, + Resources.PipingFailureMechanism_Add_piping_calculation_Tooltip, Resources.PipingIcon, (o, args) => { var failureMechanism = (PipingFailureMechanism)nodeData; @@ -100,12 +107,15 @@ failureMechanism.Calculations.Add(pipingData); failureMechanism.NotifyObservers(); }); - rootMenu.AddMenuItem("Berekenen", "Valideer en vervolgens reken all piping berekeningen door in het faalmechanisme.", + rootMenu.AddMenuItem(Resources.Calculate, + Resources.PipingFailureMechanism_Calculate_Tooltip, Resources.PlayAll, (o, args) => { var failureMechanism = (PipingFailureMechanism)nodeData; - PipingCalculationService.PerfromValidatedCalculation(failureMechanism); - failureMechanism.NotifyObservers(); + foreach (var calc in failureMechanism.Calculations) + { + RunActivityAction(new PipingCalculationActivity(calc)); + } }); return rootMenu; Index: src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.Designer.cs =================================================================== diff -u -rac57fa1a2d441543bb026e785f1483586079cc7d -r2f6a4919a4b3a16f09d7da1c09223335eb261692 --- src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision ac57fa1a2d441543bb026e785f1483586079cc7d) +++ src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 2f6a4919a4b3a16f09d7da1c09223335eb261692) @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.34209 +// Runtime Version:4.0.30319.18444 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -70,6 +70,15 @@ } /// + /// Looks up a localized string similar to Berekenen. + /// + public static string Calculate { + get { + return ResourceManager.GetString("Calculate", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Algemeen. /// public static string Categories_General { @@ -495,7 +504,7 @@ } /// - /// Looks up a localized string similar to Drawsdoorsnede. + /// Looks up a localized string similar to Dwarsdoorsnede. /// public static string PipingDataSurfaceLineDisplayName { get { @@ -612,6 +621,33 @@ } /// + /// Looks up a localized string similar to Berekening toevoegen. + /// + public static string PipingFailureMechanism_Add_piping_calculation { + get { + return ResourceManager.GetString("PipingFailureMechanism_Add_piping_calculation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Voeg een nieuwe piping berekening toe aan het faalmechanisme.. + /// + public static string PipingFailureMechanism_Add_piping_calculation_Tooltip { + get { + return ResourceManager.GetString("PipingFailureMechanism_Add_piping_calculation_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Valideer en vervolgens reken all piping berekeningen door in het faalmechanisme.. + /// + public static string PipingFailureMechanism_Calculate_Tooltip { + get { + return ResourceManager.GetString("PipingFailureMechanism_Calculate_Tooltip", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Faalmechanisme piping. /// public static string PipingFailureMechanismDisplayName { Index: src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.resx =================================================================== diff -u -rac57fa1a2d441543bb026e785f1483586079cc7d -r2f6a4919a4b3a16f09d7da1c09223335eb261692 --- src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.resx (.../Resources.resx) (revision ac57fa1a2d441543bb026e785f1483586079cc7d) +++ src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.resx (.../Resources.resx) (revision 2f6a4919a4b3a16f09d7da1c09223335eb261692) @@ -380,7 +380,7 @@ De dwarsdoorsnede die voor de piping berekening gebruikt wordt. - Drawsdoorsnede + Dwarsdoorsnede ..\Resources\PlayAll.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -418,4 +418,16 @@ Ondergrondprofiel + + Berekening toevoegen + + + Voeg een nieuwe piping berekening toe aan het faalmechanisme. + + + Berekenen + + + Valideer en vervolgens reken all piping berekeningen door in het faalmechanisme. + \ No newline at end of file Index: src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Plugin/WtiGuiPlugin.cs =================================================================== diff -u -r7b2fb7be49ba189d624e933485f14a7b94039bbb -r2f6a4919a4b3a16f09d7da1c09223335eb261692 --- src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Plugin/WtiGuiPlugin.cs (.../WtiGuiPlugin.cs) (revision 7b2fb7be49ba189d624e933485f14a7b94039bbb) +++ src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Plugin/WtiGuiPlugin.cs (.../WtiGuiPlugin.cs) (revision 2f6a4919a4b3a16f09d7da1c09223335eb261692) @@ -74,7 +74,10 @@ { RunActivityAction = Gui.Application.ActivityRunner.Enqueue }; - yield return new PipingFailureMechanismNodePresenter(); + yield return new PipingFailureMechanismNodePresenter + { + RunActivityAction = Gui.Application.ActivityRunner.Enqueue + }; yield return new PipingSurfaceLineCollectionNodePresenter { ImportSurfaceLinesAction = Gui.CommandHandler.ImportToGuiSelection Index: src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingCalculationService.cs =================================================================== diff -u -re5a53456f16d530cb56abb35a256d8cf1f91df3d -r2f6a4919a4b3a16f09d7da1c09223335eb261692 --- src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingCalculationService.cs (.../PipingCalculationService.cs) (revision e5a53456f16d530cb56abb35a256d8cf1f91df3d) +++ src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingCalculationService.cs (.../PipingCalculationService.cs) (revision 2f6a4919a4b3a16f09d7da1c09223335eb261692) @@ -15,62 +15,38 @@ /// public static class PipingCalculationService { - private static readonly ILog PipingDataLogger = LogManager.GetLogger(typeof(PipingData)); + private static readonly ILog pipingDataLogger = LogManager.GetLogger(typeof(PipingData)); /// - /// Performs a piping calculation based on the supplied and sets - /// to the if the calculation was successful. Error and status information is logged during - /// the execution of the operation. - /// - /// The to base the input for the calculation upon. - /// If contains validation errors, then is returned. - /// If problems were encountered during the calculation, is returned. - /// Otherwise, is returned. - public static void PerfromValidatedCalculation(PipingData pipingData) - { - if (Validate(pipingData)) - { - ClearOutput(pipingData); - Calculate(pipingData); - } - } - - /// /// Performs validation over the values on the given . Error and status information is logged during /// the execution of the operation. /// /// The for which to validate the values. /// False if contains validation errors; True otherwise. public static bool Validate(PipingData pipingData) { - PipingDataLogger.Info(String.Format(Resources.Validation_Subject_0_Started_Time_1_, + pipingDataLogger.Info(String.Format(Resources.Validation_Subject_0_Started_Time_1_, pipingData.Name, DateTimeService.CurrentTimeAsString)); var validationResults = new PipingCalculation(CreateInputFromData(pipingData)).Validate(); LogMessagesAsError(Resources.ErrorInPipingValidation_0, validationResults.ToArray()); - PipingDataLogger.Info(String.Format(Resources.Validation_Subject_0_Ended_Time_1_, + pipingDataLogger.Info(String.Format(Resources.Validation_Subject_0_Ended_Time_1_, pipingData.Name, DateTimeService.CurrentTimeAsString)); return validationResults.Count == 0; } - private static void LogMessagesAsError(string format, params string[] errorMessages) - { - foreach (var errorMessage in errorMessages) - { - PipingDataLogger.Error(string.Format(format, errorMessage)); - } - } - - private static void ClearOutput(PipingData pipingData) - { - pipingData.Output = null; - } - + /// + /// Performs a piping calculation based on the supplied and sets + /// to the if the calculation was successful. Error and status information is logged during + /// the execution of the operation. + /// + /// The to base the input for the calculation upon. + /// Consider calling first to see if calculation is possible. public static void Calculate(PipingData pipingData) { - PipingDataLogger.Info(String.Format(Resources.Calculation_Subject_0_Started_Time_1_, + pipingDataLogger.Info(String.Format(Resources.Calculation_Subject_0_Started_Time_1_, pipingData.Name, DateTimeService.CurrentTimeAsString)); try @@ -90,11 +66,19 @@ } finally { - PipingDataLogger.Info(String.Format(Resources.Calculation_Subject_0_Ended_Time_1_, + pipingDataLogger.Info(String.Format(Resources.Calculation_Subject_0_Ended_Time_1_, pipingData.Name, DateTimeService.CurrentTimeAsString)); } } + private static void LogMessagesAsError(string format, params string[] errorMessages) + { + foreach (var errorMessage in errorMessages) + { + pipingDataLogger.Error(string.Format(format, errorMessage)); + } + } + private static PipingCalculationInput CreateInputFromData(PipingData pipingData) { return new PipingCalculationInput( @@ -124,13 +108,5 @@ pipingData.SoilProfile ); } - - public static void PerfromValidatedCalculation(PipingFailureMechanism failureMechanism) - { - foreach (var calculation in failureMechanism.Calculations) - { - PerfromValidatedCalculation(calculation); - } - } } } \ No newline at end of file Fisheye: Tag 2f6a4919a4b3a16f09d7da1c09223335eb261692 refers to a dead (removed) revision in file `src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingFailureMechanismCalculationActivity.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/Ringtoets.Piping.Service.csproj =================================================================== diff -u -r1a305404abc19e3cb419a32ff48b793391722d8b -r2f6a4919a4b3a16f09d7da1c09223335eb261692 --- src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/Ringtoets.Piping.Service.csproj (.../Ringtoets.Piping.Service.csproj) (revision 1a305404abc19e3cb419a32ff48b793391722d8b) +++ src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/Ringtoets.Piping.Service.csproj (.../Ringtoets.Piping.Service.csproj) (revision 2f6a4919a4b3a16f09d7da1c09223335eb261692) @@ -60,7 +60,6 @@ - True Index: src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationActivityTest.cs =================================================================== diff -u -r1a305404abc19e3cb419a32ff48b793391722d8b -r2f6a4919a4b3a16f09d7da1c09223335eb261692 --- src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationActivityTest.cs (.../PipingCalculationActivityTest.cs) (revision 1a305404abc19e3cb419a32ff48b793391722d8b) +++ src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationActivityTest.cs (.../PipingCalculationActivityTest.cs) (revision 2f6a4919a4b3a16f09d7da1c09223335eb261692) @@ -91,6 +91,34 @@ } [Test] + public void Execute_InvalidPipingDataAndInitialized_ErrorLoggedAndOutputNullWithStartAndEnd() + { + // Setup + var validPipingData = PipingDataFactory.CreateCalculationWithValidInput(); + validPipingData.Diameter70 = 0; + validPipingData.DarcyPermeability = 0; + validPipingData.Output = new TestPipingOutput(); + + var activity = new PipingCalculationActivity(validPipingData); + activity.Initialize(); + + // Call + Action call = () => activity.Execute(); + + // Assert + TestHelper.AssertLogMessages(call, messages => + { + var msgs = messages.ToArray(); + Assert.AreEqual(3, msgs.Length); + StringAssert.StartsWith(String.Format("Berekening van '{0}' gestart om: ", validPipingData.Name), msgs.First()); + StringAssert.StartsWith("Piping berekening niet gelukt: ", msgs[1]); + StringAssert.StartsWith(String.Format("Berekening van '{0}' beëindigd om: ", validPipingData.Name), msgs.Last()); + }); + Assert.AreEqual(ActivityStatus.Done, activity.Status); + Assert.IsNull(validPipingData.Output); + } + + [Test] public void Execute_ValidPipingDataAndInitialized_PerformPipingCalculationAndLogStartAndEnd() { // Setup Index: src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationServiceTest.cs =================================================================== diff -u -r7b2fb7be49ba189d624e933485f14a7b94039bbb -r2f6a4919a4b3a16f09d7da1c09223335eb261692 --- src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationServiceTest.cs (.../PipingCalculationServiceTest.cs) (revision 7b2fb7be49ba189d624e933485f14a7b94039bbb) +++ src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationServiceTest.cs (.../PipingCalculationServiceTest.cs) (revision 2f6a4919a4b3a16f09d7da1c09223335eb261692) @@ -36,6 +36,22 @@ } [Test] + public void Validate_InValidPipingDataWithOutput_ReturnsFalseNoOutputChange() + { + // Setup + var output = new TestPipingOutput(); + var invalidPipingData = PipingDataFactory.CreateCalculationWithInvalidData(); + invalidPipingData.Output = output; + + // Call + var isValid = PipingCalculationService.Validate(invalidPipingData); + + // Assert + Assert.IsFalse(isValid); + Assert.AreSame(output, invalidPipingData.Output); + } + + [Test] public void PerformValidatedCalculation_ValidPipingData_LogStartAndEndOfValidatingInputsAndCalculation() { // Setup @@ -45,7 +61,11 @@ pipingData.Name = name; // Call - Action call = () => PipingCalculationService.PerfromValidatedCalculation(pipingData); + Action call = () => + { + Assert.IsTrue(PipingCalculationService.Validate(pipingData)); + PipingCalculationService.Calculate(pipingData); + }; // Assert TestHelper.AssertLogMessages(call, messages => @@ -69,7 +89,8 @@ Assert.IsNull(validPipingData.Output); // Call - PipingCalculationService.PerfromValidatedCalculation(validPipingData); + Assert.IsTrue(PipingCalculationService.Validate(validPipingData)); + PipingCalculationService.Calculate(validPipingData); // Assert Assert.IsNotNull(validPipingData.Output); @@ -85,28 +106,14 @@ validPipingData.Output = output; // Call - PipingCalculationService.PerfromValidatedCalculation(validPipingData); + Assert.IsTrue(PipingCalculationService.Validate(validPipingData)); + PipingCalculationService.Calculate(validPipingData); // Assert Assert.AreNotSame(output, validPipingData.Output); } [Test] - public void PerformValidatedCalculation_InValidPipingDataWithOutput_ReturnsFalseNoOutputChange() - { - // Setup - var output = new TestPipingOutput(); - var invalidPipingData = PipingDataFactory.CreateCalculationWithInvalidData(); - invalidPipingData.Output = output; - - // Call - PipingCalculationService.PerfromValidatedCalculation(invalidPipingData); - - // Assert - Assert.AreSame(output, invalidPipingData.Output); - } - - [Test] public void PerformValidatedCalculation_Diameter70AndAquiferPermeabilityZero_CalculationErrorOutputNull() { // Setup @@ -115,87 +122,12 @@ validPipingData.DarcyPermeability = 0; // Call - PipingCalculationService.PerfromValidatedCalculation(validPipingData); + var isValid = PipingCalculationService.Validate(validPipingData); + PipingCalculationService.Calculate(validPipingData); // Assert + Assert.IsTrue(isValid); Assert.IsNull(validPipingData.Output); } - - [Test] - public void PerformValidatedCalculation_FailureMechanismHasMultipleValidCalculations_SetOutpufOnEach() - { - // Setup - var failureMechanism = new PipingFailureMechanism(); - failureMechanism.Calculations.Clear(); - failureMechanism.Calculations.Add(PipingDataFactory.CreateCalculationWithValidInput()); - failureMechanism.Calculations.Add(PipingDataFactory.CreateCalculationWithValidInput()); - failureMechanism.Calculations.Add(PipingDataFactory.CreateCalculationWithValidInput()); - - // Call - PipingCalculationService.PerfromValidatedCalculation(failureMechanism); - - // Assert - foreach (var calculation in failureMechanism.Calculations) - { - Assert.IsNotNull(calculation.Output); - } - } - - [Test] - public void PerformValidatedCalculation_FailureMechanismHasCalculationsWithOutputs_ReplaceOutputOnEach() - { - // Setup - var failureMechanism = new PipingFailureMechanism(); - failureMechanism.Calculations.Clear(); - failureMechanism.Calculations.Add(PipingDataFactory.CreateCalculationWithValidInput()); - failureMechanism.Calculations.Add(PipingDataFactory.CreateCalculationWithValidInput()); - failureMechanism.Calculations.Add(PipingDataFactory.CreateCalculationWithValidInput()); - - foreach (var calculation in failureMechanism.Calculations) - { - calculation.Output = new TestPipingOutput(); - } - var originalOutputs = failureMechanism.Calculations.Select(c => c.Output).ToArray(); - - // Call - PipingCalculationService.PerfromValidatedCalculation(failureMechanism); - - // Assert - var index = 0; - foreach (var calculation in failureMechanism.Calculations) - { - Assert.IsNotNull(calculation.Output); - Assert.AreNotSame(originalOutputs[index++], calculation.Output); - } - } - - [Test] - public void PerformValidatedCalculation_FailureMechanismHasOneInvalidCalculation_ReplaceOutputOnEach() - { - // Setup - var failureMechanism = new PipingFailureMechanism(); - failureMechanism.Calculations.Clear(); - failureMechanism.Calculations.Add(PipingDataFactory.CreateCalculationWithValidInput()); - failureMechanism.Calculations.Add(PipingDataFactory.CreateCalculationWithInvalidData()); // Unable to calculate - failureMechanism.Calculations.Add(PipingDataFactory.CreateCalculationWithValidInput()); - - // Call - PipingCalculationService.PerfromValidatedCalculation(failureMechanism); - - // Assert - var index = 0; - foreach (var calculation in failureMechanism.Calculations) - { - if (index++ == 1) - { - Assert.IsNull(calculation.Output, - "Calculation input is not valid, therefore calculation cannot produce output."); - } - else - { - Assert.IsNotNull(calculation.Output); - } - } - } } } \ No newline at end of file Fisheye: Tag 2f6a4919a4b3a16f09d7da1c09223335eb261692 refers to a dead (removed) revision in file `src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingFailureMechanismCalculationActivityTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/Ringtoets.Piping.Service.Test.csproj =================================================================== diff -u -r1a305404abc19e3cb419a32ff48b793391722d8b -r2f6a4919a4b3a16f09d7da1c09223335eb261692 --- src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/Ringtoets.Piping.Service.Test.csproj (.../Ringtoets.Piping.Service.Test.csproj) (revision 1a305404abc19e3cb419a32ff48b793391722d8b) +++ src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/Ringtoets.Piping.Service.Test.csproj (.../Ringtoets.Piping.Service.Test.csproj) (revision 2f6a4919a4b3a16f09d7da1c09223335eb261692) @@ -51,7 +51,6 @@ -