diff --git a/src/VersionInfo.cs b/src/VersionInfo.cs
index 56aa0ea..a2695b7 100644
--- a/src/VersionInfo.cs
+++ b/src/VersionInfo.cs
@@ -22,7 +22,7 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary
/// Build Number (MMDD)
/// Revision (if any on the same day)
///
- internal const string Version = "2.18.0318.0";
+ internal const string Version = "2.18.1110.0";
///
/// File Version information for the assembly consists of the following four values:
@@ -31,6 +31,6 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary
/// Build Number (MMDD)
/// Revision (if any on the same day)
///
- internal const string FileVersion = "2.18.0318.0";
+ internal const string FileVersion = "2.18.1110.0";
}
}
\ No newline at end of file
diff --git a/src/WorkflowActivityLibrary/Activities/AddDelay.cs b/src/WorkflowActivityLibrary/Activities/AddDelay.cs
index 747f7b5..0843457 100644
--- a/src/WorkflowActivityLibrary/Activities/AddDelay.cs
+++ b/src/WorkflowActivityLibrary/Activities/AddDelay.cs
@@ -13,9 +13,11 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.Activitie
#region Namespaces Declarations
using System;
+ using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
+ using System.Linq;
using System.Workflow.Activities;
using System.Workflow.ComponentModel;
using MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.Common;
@@ -173,6 +175,35 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.Activitie
}
}
+ ///
+ /// Determines the action taken when the activity has completed execution.
+ ///
+ /// The execution context of the activity.
+ protected override void OnSequenceComplete(ActivityExecutionContext executionContext)
+ {
+ Logger.Instance.WriteMethodEntry(EventIdentifier.AddDelayOnSequenceComplete);
+
+ try
+ {
+ // Clear the variable cache for the expression evaluator
+ // so that any variables, such as SqlParameter, not marked as serializable does not cause dehyration issues.
+ if (this.ActivityExpressionEvaluator != null
+ && this.ActivityExpressionEvaluator.VariableCache != null
+ && this.ActivityExpressionEvaluator.VariableCache.Keys != null)
+ {
+ List variables = this.ActivityExpressionEvaluator.VariableCache.Keys.ToList();
+ foreach (string variable in variables)
+ {
+ this.ActivityExpressionEvaluator.VariableCache[variable] = null;
+ }
+ }
+ }
+ finally
+ {
+ Logger.Instance.WriteMethodExit(EventIdentifier.AddDelayOnSequenceComplete);
+ }
+ }
+
///
/// Handles the ExecuteCode event of the ParseExpressions CodeActivity.
///
diff --git a/src/WorkflowActivityLibrary/Activities/CreateResource.cs b/src/WorkflowActivityLibrary/Activities/CreateResource.cs
index 4e69c23..5880e11 100644
--- a/src/WorkflowActivityLibrary/Activities/CreateResource.cs
+++ b/src/WorkflowActivityLibrary/Activities/CreateResource.cs
@@ -590,6 +590,35 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.Activitie
}
}
+ ///
+ /// Determines the action taken when the activity has completed execution.
+ ///
+ /// The execution context of the activity.
+ protected override void OnSequenceComplete(ActivityExecutionContext executionContext)
+ {
+ Logger.Instance.WriteMethodEntry(EventIdentifier.CreateResourceOnSequenceComplete);
+
+ try
+ {
+ // Clear the variable cache for the expression evaluator
+ // so that any variables, such as SqlParameter, not marked as serializable does not cause dehyration issues.
+ if (this.ActivityExpressionEvaluator != null
+ && this.ActivityExpressionEvaluator.VariableCache != null
+ && this.ActivityExpressionEvaluator.VariableCache.Keys != null)
+ {
+ List variables = this.ActivityExpressionEvaluator.VariableCache.Keys.ToList();
+ foreach (string variable in variables)
+ {
+ this.ActivityExpressionEvaluator.VariableCache[variable] = null;
+ }
+ }
+ }
+ finally
+ {
+ Logger.Instance.WriteMethodExit(EventIdentifier.CreateResourceOnSequenceComplete);
+ }
+ }
+
///
/// Handles the ExecuteCode event of the ParseDefinitions CodeActivity.
///
diff --git a/src/WorkflowActivityLibrary/Activities/DeleteResources.cs b/src/WorkflowActivityLibrary/Activities/DeleteResources.cs
index 743583d..15a79b9 100644
--- a/src/WorkflowActivityLibrary/Activities/DeleteResources.cs
+++ b/src/WorkflowActivityLibrary/Activities/DeleteResources.cs
@@ -362,6 +362,35 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.Activitie
}
}
+ ///
+ /// Determines the action taken when the activity has completed execution.
+ ///
+ /// The execution context of the activity.
+ protected override void OnSequenceComplete(ActivityExecutionContext executionContext)
+ {
+ Logger.Instance.WriteMethodEntry(EventIdentifier.DeleteResourcesOnSequenceComplete);
+
+ try
+ {
+ // Clear the variable cache for the expression evaluator
+ // so that any variables, such as SqlParameter, not marked as serializable does not cause dehyration issues.
+ if (this.ActivityExpressionEvaluator != null
+ && this.ActivityExpressionEvaluator.VariableCache != null
+ && this.ActivityExpressionEvaluator.VariableCache.Keys != null)
+ {
+ List variables = this.ActivityExpressionEvaluator.VariableCache.Keys.ToList();
+ foreach (string variable in variables)
+ {
+ this.ActivityExpressionEvaluator.VariableCache[variable] = null;
+ }
+ }
+ }
+ finally
+ {
+ Logger.Instance.WriteMethodExit(EventIdentifier.DeleteResourcesOnSequenceComplete);
+ }
+ }
+
///
/// Handles the ExecuteCode event of the PrepareResolve CodeActivity.
///
diff --git a/src/WorkflowActivityLibrary/Activities/GenerateUniqueValue.cs b/src/WorkflowActivityLibrary/Activities/GenerateUniqueValue.cs
index 585d58c..0da9602 100644
--- a/src/WorkflowActivityLibrary/Activities/GenerateUniqueValue.cs
+++ b/src/WorkflowActivityLibrary/Activities/GenerateUniqueValue.cs
@@ -412,6 +412,35 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.Activitie
}
}
+ ///
+ /// Determines the action taken when the activity has completed execution.
+ ///
+ /// The execution context of the activity.
+ protected override void OnSequenceComplete(ActivityExecutionContext executionContext)
+ {
+ Logger.Instance.WriteMethodEntry(EventIdentifier.GenerateUniqueValueOnSequenceComplete);
+
+ try
+ {
+ // Clear the variable cache for the expression evaluator
+ // so that any variables, such as SqlParameter, not marked as serializable does not cause dehyration issues.
+ if (this.ActivityExpressionEvaluator != null
+ && this.ActivityExpressionEvaluator.VariableCache != null
+ && this.ActivityExpressionEvaluator.VariableCache.Keys != null)
+ {
+ List variables = this.ActivityExpressionEvaluator.VariableCache.Keys.ToList();
+ foreach (string variable in variables)
+ {
+ this.ActivityExpressionEvaluator.VariableCache[variable] = null;
+ }
+ }
+ }
+ finally
+ {
+ Logger.Instance.WriteMethodExit(EventIdentifier.GenerateUniqueValueOnSequenceComplete);
+ }
+ }
+
///
/// Resolves the value filter.
///
diff --git a/src/WorkflowActivityLibrary/Activities/RequestApproval.cs b/src/WorkflowActivityLibrary/Activities/RequestApproval.cs
index 67dd29d..b07c184 100644
--- a/src/WorkflowActivityLibrary/Activities/RequestApproval.cs
+++ b/src/WorkflowActivityLibrary/Activities/RequestApproval.cs
@@ -408,6 +408,35 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.Activitie
}
}
+ ///
+ /// Determines the action taken when the activity has completed execution.
+ ///
+ /// The execution context of the activity.
+ protected override void OnSequenceComplete(ActivityExecutionContext executionContext)
+ {
+ Logger.Instance.WriteMethodEntry(EventIdentifier.RequestApprovalOnSequenceComplete);
+
+ try
+ {
+ // Clear the variable cache for the expression evaluator
+ // so that any variables, such as SqlParameter, not marked as serializable does not cause dehyration issues.
+ if (this.ActivityExpressionEvaluator != null
+ && this.ActivityExpressionEvaluator.VariableCache != null
+ && this.ActivityExpressionEvaluator.VariableCache.Keys != null)
+ {
+ List variables = this.ActivityExpressionEvaluator.VariableCache.Keys.ToList();
+ foreach (string variable in variables)
+ {
+ this.ActivityExpressionEvaluator.VariableCache[variable] = null;
+ }
+ }
+ }
+ finally
+ {
+ Logger.Instance.WriteMethodExit(EventIdentifier.RequestApprovalOnSequenceComplete);
+ }
+ }
+
///
/// Handles the ExecuteCode event of the ParseExpressions CodeActivity.
///
diff --git a/src/WorkflowActivityLibrary/Activities/RunPowerShellScript.cs b/src/WorkflowActivityLibrary/Activities/RunPowerShellScript.cs
index fe0d889..69ac063 100644
--- a/src/WorkflowActivityLibrary/Activities/RunPowerShellScript.cs
+++ b/src/WorkflowActivityLibrary/Activities/RunPowerShellScript.cs
@@ -21,6 +21,7 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.Activitie
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.IO;
+ using System.Linq;
using System.Management.Automation;
using System.Management.Automation.Runspaces;
using System.Reflection;
@@ -516,6 +517,35 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.Activitie
}
}
+ ///
+ /// Determines the action taken when the activity has completed execution.
+ ///
+ /// The execution context of the activity.
+ protected override void OnSequenceComplete(ActivityExecutionContext executionContext)
+ {
+ Logger.Instance.WriteMethodEntry(EventIdentifier.RunPowerShellScriptOnSequenceComplete);
+
+ try
+ {
+ // Clear the variable cache for the expression evaluator
+ // so that any variables, such as SqlParameter, not marked as serializable does not cause dehyration issues.
+ if (this.ActivityExpressionEvaluator != null
+ && this.ActivityExpressionEvaluator.VariableCache != null
+ && this.ActivityExpressionEvaluator.VariableCache.Keys != null)
+ {
+ List variables = this.ActivityExpressionEvaluator.VariableCache.Keys.ToList();
+ foreach (string variable in variables)
+ {
+ this.ActivityExpressionEvaluator.VariableCache[variable] = null;
+ }
+ }
+ }
+ finally
+ {
+ Logger.Instance.WriteMethodExit(EventIdentifier.RunPowerShellScriptOnSequenceComplete);
+ }
+ }
+
///
/// Sets up the PowerShell shell stream event handlers.
///
diff --git a/src/WorkflowActivityLibrary/Activities/SendEmailNotification.cs b/src/WorkflowActivityLibrary/Activities/SendEmailNotification.cs
index 2cf9e0d..e11d94d 100644
--- a/src/WorkflowActivityLibrary/Activities/SendEmailNotification.cs
+++ b/src/WorkflowActivityLibrary/Activities/SendEmailNotification.cs
@@ -525,6 +525,35 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.Activitie
}
}
+ ///
+ /// Determines the action taken when the activity has completed execution.
+ ///
+ /// The execution context of the activity.
+ protected override void OnSequenceComplete(ActivityExecutionContext executionContext)
+ {
+ Logger.Instance.WriteMethodEntry(EventIdentifier.SendEmailNotificationOnSequenceComplete);
+
+ try
+ {
+ // Clear the variable cache for the expression evaluator
+ // so that any variables, such as SqlParameter, not marked as serializable does not cause dehyration issues.
+ if (this.ActivityExpressionEvaluator != null
+ && this.ActivityExpressionEvaluator.VariableCache != null
+ && this.ActivityExpressionEvaluator.VariableCache.Keys != null)
+ {
+ List variables = this.ActivityExpressionEvaluator.VariableCache.Keys.ToList();
+ foreach (string variable in variables)
+ {
+ this.ActivityExpressionEvaluator.VariableCache[variable] = null;
+ }
+ }
+ }
+ finally
+ {
+ Logger.Instance.WriteMethodExit(EventIdentifier.SendEmailNotificationOnSequenceComplete);
+ }
+ }
+
///
/// Converts the specified email template resolved expression into a Guid object
///
diff --git a/src/WorkflowActivityLibrary/Activities/UpdateResources.cs b/src/WorkflowActivityLibrary/Activities/UpdateResources.cs
index dbb50a6..f9e21a0 100644
--- a/src/WorkflowActivityLibrary/Activities/UpdateResources.cs
+++ b/src/WorkflowActivityLibrary/Activities/UpdateResources.cs
@@ -440,6 +440,35 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.Activitie
}
}
+ ///
+ /// Determines the action taken when the activity has completed execution.
+ ///
+ /// The execution context of the activity.
+ protected override void OnSequenceComplete(ActivityExecutionContext executionContext)
+ {
+ Logger.Instance.WriteMethodEntry(EventIdentifier.UpdateResourcesOnSequenceComplete);
+
+ try
+ {
+ // Clear the variable cache for the expression evaluator
+ // so that any variables, such as SqlParameter, not marked as serializable does not cause dehyration issues.
+ if (this.ActivityExpressionEvaluator != null
+ && this.ActivityExpressionEvaluator.VariableCache != null
+ && this.ActivityExpressionEvaluator.VariableCache.Keys != null)
+ {
+ List variables = this.ActivityExpressionEvaluator.VariableCache.Keys.ToList();
+ foreach (string variable in variables)
+ {
+ this.ActivityExpressionEvaluator.VariableCache[variable] = null;
+ }
+ }
+ }
+ finally
+ {
+ Logger.Instance.WriteMethodExit(EventIdentifier.UpdateResourcesOnSequenceComplete);
+ }
+ }
+
///
/// Handles the ExecuteCode event of the Prepare CodeActivity.
///
diff --git a/src/WorkflowActivityLibrary/Activities/VerifyRequest.cs b/src/WorkflowActivityLibrary/Activities/VerifyRequest.cs
index 8d78beb..7806079 100644
--- a/src/WorkflowActivityLibrary/Activities/VerifyRequest.cs
+++ b/src/WorkflowActivityLibrary/Activities/VerifyRequest.cs
@@ -388,6 +388,35 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.Activitie
}
}
+ ///
+ /// Determines the action taken when the activity has completed execution.
+ ///
+ /// The execution context of the activity.
+ protected override void OnSequenceComplete(ActivityExecutionContext executionContext)
+ {
+ Logger.Instance.WriteMethodEntry(EventIdentifier.VerifyRequestOnSequenceComplete);
+
+ try
+ {
+ // Clear the variable cache for the expression evaluator
+ // so that any variables, such as SqlParameter, not marked as serializable does not cause dehyration issues.
+ if (this.ActivityExpressionEvaluator != null
+ && this.ActivityExpressionEvaluator.VariableCache != null
+ && this.ActivityExpressionEvaluator.VariableCache.Keys != null)
+ {
+ List variables = this.ActivityExpressionEvaluator.VariableCache.Keys.ToList();
+ foreach (string variable in variables)
+ {
+ this.ActivityExpressionEvaluator.VariableCache[variable] = null;
+ }
+ }
+ }
+ finally
+ {
+ Logger.Instance.WriteMethodExit(EventIdentifier.VerifyRequestOnSequenceComplete);
+ }
+ }
+
///
/// Handles the ExecuteCode event of the Prepare CodeActivity.
///
diff --git a/src/WorkflowActivityLibrary/Common/EventIdentifier.cs b/src/WorkflowActivityLibrary/Common/EventIdentifier.cs
index 8157560..978dd32 100644
--- a/src/WorkflowActivityLibrary/Common/EventIdentifier.cs
+++ b/src/WorkflowActivityLibrary/Common/EventIdentifier.cs
@@ -128,6 +128,11 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.Common
///
public const int CreateResourceActorIsNotValueExpressionCondition = 10115;
+ ///
+ /// The event identifier for CreateResource OnSequenceComplete events
+ ///
+ public const int CreateResourceOnSequenceComplete = 10116;
+
///
/// The event identifier for DeleteResources Constructor events
///
@@ -188,6 +193,11 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.Common
///
public const int DeleteResourcesActorIsNotValueExpressionCondition = 10212;
+ ///
+ /// The event identifier for DeleteResources OnSequenceComplete events
+ ///
+ public const int DeleteResourcesOnSequenceComplete = 10213;
+
///
/// The event identifier for GenerateUniqueValue Constructor events
///
@@ -263,6 +273,11 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.Common
///
public const int GenerateUniqueValueRepositionUniquenessKey = 10315;
+ ///
+ /// The event identifier for GenerateUniqueValue OnSequenceComplete events
+ ///
+ public const int GenerateUniqueValueOnSequenceComplete = 10316;
+
///
/// The event identifier for RunPowerShellScript Constructor events
///
@@ -303,6 +318,11 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.Common
///
public const int RunPowerShellScriptActivityExecutionConditionSatisfiedCondition = 10408;
+ ///
+ /// The event identifier for RunPowerShellScript OnSequenceComplete events
+ ///
+ public const int RunPowerShellScriptOnSequenceComplete = 10409;
+
///
/// The event identifier for UpdateResources Constructor events
///
@@ -368,6 +388,11 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.Common
///
public const int UpdateResourcesForEachDynamicStringForResolutionChildCompleted = 10513;
+ ///
+ /// The event identifier for UpdateResources OnSequenceComplete events
+ ///
+ public const int UpdateResourcesOnSequenceComplete = 10514;
+
///
/// The event identifier for VerifyRequest Constructor events
///
@@ -433,6 +458,11 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.Common
///
public const int VerifyRequestActivityExecutionConditionSatisfiedCondition = 10613;
+ ///
+ /// The event identifier for VerifyRequest OnSequenceComplete events
+ ///
+ public const int VerifyRequestOnSequenceComplete = 10614;
+
///
/// The event identifier for AsynchronousCreateResource Constructor events
///
@@ -1458,6 +1488,11 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.Common
///
public const int AddDelayTraceWakeupExecuteCode = 12506;
+ ///
+ /// The event identifier for AddDelay OnSequenceComplete events
+ ///
+ public const int AddDelayOnSequenceComplete = 12507;
+
///
/// The event identifier for SendEmailNotification Constructor events
///
@@ -1611,6 +1646,11 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.Common
///
public const int SendEmailNotificationQueriesHaveNoValueExpressionsCondition = 12630;
+ ///
+ /// The event identifier for SendEmailNotification OnSequenceComplete events
+ ///
+ public const int SendEmailNotificationOnSequenceComplete = 12631;
+
///
/// The event identifier for RequestApproval Constructor events
///
@@ -1761,6 +1801,11 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.Common
///
public const int RequestApprovalFormatRecipient = 12729;
+ ///
+ /// The event identifier for RequestApproval OnSequenceComplete events
+ ///
+ public const int RequestApprovalOnSequenceComplete = 12730;
+
#endregion
#region "Informational Events"