From 85ba3fc646aa4bfbbc0446c67c3bd8f09a49394a Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Fri, 19 Apr 2024 21:57:55 +0200 Subject: [PATCH] Update activity execution mapping in workflow runtime (#5253) The code changes involve updating the activity execution mapper in Elsa.Workflows.Runtime. The updated logic now consider the closest ancestor in the workflow hierarchy when determining the workflow persistence property. This provides a more accurate representation of the workflow's state, rather than relying solely on the workflow execution context. Fixes #5252 --- .../Services/DefaultActivityExecutionMapper.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/modules/Elsa.Workflows.Runtime/Services/DefaultActivityExecutionMapper.cs b/src/modules/Elsa.Workflows.Runtime/Services/DefaultActivityExecutionMapper.cs index b81f20368..6e99e329f 100644 --- a/src/modules/Elsa.Workflows.Runtime/Services/DefaultActivityExecutionMapper.cs +++ b/src/modules/Elsa.Workflows.Runtime/Services/DefaultActivityExecutionMapper.cs @@ -1,4 +1,5 @@ using Elsa.Extensions; +using Elsa.Workflows.Activities; using Elsa.Workflows.Enums; using Elsa.Workflows.Management.Options; using Elsa.Workflows.Models; @@ -28,7 +29,8 @@ public class DefaultActivityExecutionMapper(IOptions options) * } */ - var workflowPersistenceProperty = GetDefaultPersistenceMode(source.WorkflowExecutionContext.Workflow.CustomProperties, () => options.Value.LogPersistenceMode); + var workflow = (Workflow?)source.GetAncestors().FirstOrDefault(x => x.Activity is Workflow)?.Activity ?? source.WorkflowExecutionContext.Workflow; + var workflowPersistenceProperty = GetDefaultPersistenceMode(workflow.CustomProperties, () => options.Value.LogPersistenceMode); var activityPersistenceProperties = source.Activity.CustomProperties.GetValueOrDefault>(LogPersistenceModeKey, () => new Dictionary()); var activityPersistencePropertyDefault = GetDefaultPersistenceMode(source.Activity.CustomProperties, () => workflowPersistenceProperty);