Index: Core/Common/src/Core.Common.Base/Core.Common.Base.csproj =================================================================== diff -u -r2772b7959089c87ccd922ccec53d9f7e01cc02f8 -rce2e304f83d6a176ca073257ddc95c293e2c2ea7 --- Core/Common/src/Core.Common.Base/Core.Common.Base.csproj (.../Core.Common.Base.csproj) (revision 2772b7959089c87ccd922ccec53d9f7e01cc02f8) +++ Core/Common/src/Core.Common.Base/Core.Common.Base.csproj (.../Core.Common.Base.csproj) (revision ce2e304f83d6a176ca073257ddc95c293e2c2ea7) @@ -112,7 +112,6 @@ - Index: Core/Common/src/Core.Common.Base/Workflow/Activity.cs =================================================================== diff -u -r5a1cb66da074b1dce5ef4748cde5e34a12bf6211 -rce2e304f83d6a176ca073257ddc95c293e2c2ea7 --- Core/Common/src/Core.Common.Base/Workflow/Activity.cs (.../Activity.cs) (revision 5a1cb66da074b1dce5ef4748cde5e34a12bf6211) +++ Core/Common/src/Core.Common.Base/Workflow/Activity.cs (.../Activity.cs) (revision ce2e304f83d6a176ca073257ddc95c293e2c2ea7) @@ -27,8 +27,85 @@ { return progressText; } + set + { + progressText = value; + + if (ProgressChanged != null) + { + ProgressChanged(this, null); + } + } } + public void Run() + { + try + { + Initialize(); + + if (Status == ActivityStatus.Failed) + { + throw new Exception(string.Format(Resources.ActivityRunner_RunActivity_Initialization_of_0_has_failed, Name)); + } + + while (Status != ActivityStatus.Done) + { + if (Status == ActivityStatus.Cancelled) + { + log.WarnFormat(Resources.ActivityRunner_RunActivity_Execution_of_0_has_been_canceled, Name); + break; + } + + if (Status != ActivityStatus.WaitingForData) + { + Execute(); + } + + if (Status == ActivityStatus.Failed) + { + throw new Exception(string.Format(Resources.ActivityRunner_RunActivity_Execution_of_0_has_failed, Name)); + } + } + + if (Status != ActivityStatus.Cancelled) + { + Finish(); + + if (Status == ActivityStatus.Failed) + { + throw new Exception(string.Format(Resources.ActivityRunner_RunActivity_Finishing_of_0_has_failed, Name)); + } + } + + Cleanup(); + + if (Status == ActivityStatus.Failed) + { + throw new Exception(string.Format(Resources.ActivityRunner_RunActivity_Clean_up_of_0_has_failed, Name)); + } + } + catch (Exception exception) + { + Console.WriteLine(exception.Message); //for build server debugging + log.Error(exception.Message); + } + finally + { + try + { + if (Status != ActivityStatus.Cleaned) + { + Cleanup(); + } + } + catch (Exception) + { + log.ErrorFormat(Resources.ActivityRunner_RunActivity_Clean_up_of_0_has_failed, Name); + } + } + } + public virtual void Initialize() { ChangeState(OnInitialize, ActivityStatus.Initializing, ActivityStatus.Initialized); @@ -101,16 +178,6 @@ } } - protected void SetProgressText(string progressText) - { - this.progressText = progressText; - - if (ProgressChanged != null) - { - ProgressChanged(this, null); - } - } - /// /// Initializes internal state to prepare for execution. After calling this method, /// will be set to if Fisheye: Tag ce2e304f83d6a176ca073257ddc95c293e2c2ea7 refers to a dead (removed) revision in file `Core/Common/src/Core.Common.Base/Workflow/ActivityRunner.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Core/Common/src/Core.Common.Base/Workflow/FileImportActivity.cs =================================================================== diff -u -r5a1cb66da074b1dce5ef4748cde5e34a12bf6211 -rce2e304f83d6a176ca073257ddc95c293e2c2ea7 --- Core/Common/src/Core.Common.Base/Workflow/FileImportActivity.cs (.../FileImportActivity.cs) (revision 5a1cb66da074b1dce5ef4748cde5e34a12bf6211) +++ Core/Common/src/Core.Common.Base/Workflow/FileImportActivity.cs (.../FileImportActivity.cs) (revision ce2e304f83d6a176ca073257ddc95c293e2c2ea7) @@ -84,7 +84,7 @@ importer.ProgressChanged = (currentStepName, currentStep, totalSteps) => { - SetProgressText(string.Format(Resources.FileImportActivity_ImportFromFile_Step_CurrentProgress_0_of_TotalProgress_1_____ProgressText_2, currentStep, totalSteps, currentStepName)); + ProgressText = string.Format(Resources.FileImportActivity_ImportFromFile_Step_CurrentProgress_0_of_TotalProgress_1_____ProgressText_2, currentStep, totalSteps, currentStepName); }; var item = importer.ImportItem(fileName, target); Index: Core/Common/src/Core.Common.Base/Workflow/IActivity.cs =================================================================== diff -u -r5a1cb66da074b1dce5ef4748cde5e34a12bf6211 -rce2e304f83d6a176ca073257ddc95c293e2c2ea7 --- Core/Common/src/Core.Common.Base/Workflow/IActivity.cs (.../IActivity.cs) (revision 5a1cb66da074b1dce5ef4748cde5e34a12bf6211) +++ Core/Common/src/Core.Common.Base/Workflow/IActivity.cs (.../IActivity.cs) (revision ce2e304f83d6a176ca073257ddc95c293e2c2ea7) @@ -35,6 +35,11 @@ string ProgressText { get; } /// + /// Runs the activity. + /// + void Run(); + + /// /// Initializes activity. If initialization step is successful, /// will change to . /// Index: Core/Common/src/Core.Common.Gui/Forms/ProgressDialog/ActivityProgressDialog.cs =================================================================== diff -u -re62cceb52b0c086a17e685690a44ec02185bac86 -rce2e304f83d6a176ca073257ddc95c293e2c2ea7 --- Core/Common/src/Core.Common.Gui/Forms/ProgressDialog/ActivityProgressDialog.cs (.../ActivityProgressDialog.cs) (revision e62cceb52b0c086a17e685690a44ec02185bac86) +++ Core/Common/src/Core.Common.Gui/Forms/ProgressDialog/ActivityProgressDialog.cs (.../ActivityProgressDialog.cs) (revision ce2e304f83d6a176ca073257ddc95c293e2c2ea7) @@ -65,7 +65,7 @@ runningActivity.ProgressChanged += ActivityOnProgressChanged; // Run the activity - ActivityRunner.RunActivity(runningActivity); + runningActivity.Run(); } finally { Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/NodePresenters/PipingCalculationContextNodePresenterTest.cs =================================================================== diff -u -re62cceb52b0c086a17e685690a44ec02185bac86 -rce2e304f83d6a176ca073257ddc95c293e2c2ea7 --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/NodePresenters/PipingCalculationContextNodePresenterTest.cs (.../PipingCalculationContextNodePresenterTest.cs) (revision e62cceb52b0c086a17e685690a44ec02185bac86) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/NodePresenters/PipingCalculationContextNodePresenterTest.cs (.../PipingCalculationContextNodePresenterTest.cs) (revision ce2e304f83d6a176ca073257ddc95c293e2c2ea7) @@ -7,7 +7,6 @@ using Core.Common.TestUtils; using System.Windows.Forms; using Core.Common.Base; -using Core.Common.Base.Workflow; using Core.Common.Gui.TestUtils; using NUnit.Framework; using Rhino.Mocks; @@ -650,7 +649,7 @@ var nodePresenter = new PipingCalculationContextNodePresenter { - RunActivityAction = ActivityRunner.RunActivity, + RunActivityAction = activity => activity.Run(), ContextMenuBuilderProvider = TestContextMenuBuilderProvider.Create(mockRepository, treeNodeMock, true) }; @@ -767,7 +766,7 @@ var contextMenuAdapter = nodePresenter.GetContextMenu(treeNodeMock, new PipingCalculationContext(calculation, Enumerable.Empty(), Enumerable.Empty())); - nodePresenter.RunActivityAction = ActivityRunner.RunActivity; + nodePresenter.RunActivityAction = activity => activity.Run(); // When Action action = () =>