diff --git a/src/core/Elsa.Abstractions/Services/Models/ActivityExecutionContext.cs b/src/core/Elsa.Abstractions/Services/Models/ActivityExecutionContext.cs index 7857e657c..e75fd292a 100644 --- a/src/core/Elsa.Abstractions/Services/Models/ActivityExecutionContext.cs +++ b/src/core/Elsa.Abstractions/Services/Models/ActivityExecutionContext.cs @@ -157,5 +157,19 @@ namespace Elsa.Services.Models public T? GetOutputFrom(string activityName, T? defaultValue) => (T?) GetOutputFrom(activityName, () => defaultValue)!; public void SetWorkflowContext(object? value) => WorkflowExecutionContext.SetWorkflowContext(value); public T GetWorkflowContext() => WorkflowExecutionContext.GetWorkflowContext(); + + public JObject GetActivityData(string activityId) + { + var activityData = WorkflowInstance.ActivityData; + var state = activityData.ContainsKey(activityId) ? activityData[activityId] : default; + + if (state != null) + return state; + + state = new JObject(); + activityData[activityId] = state; + + return state; + } } } \ No newline at end of file diff --git a/src/core/Elsa.Core/Activities/ControlFlow/Break/Break.cs b/src/core/Elsa.Core/Activities/ControlFlow/Break/Break.cs index b7b07d1a5..ad7a0b3a9 100644 --- a/src/core/Elsa.Core/Activities/ControlFlow/Break/Break.cs +++ b/src/core/Elsa.Core/Activities/ControlFlow/Break/Break.cs @@ -30,7 +30,7 @@ namespace Elsa.Activities.ControlFlow var supportedScope = query.FirstOrDefault(); if(supportedScope != null) - context.WorkflowInstance.ActivityData[supportedScope.ActivityId].SetState("Break", true); + context.GetActivityData(supportedScope.ActivityId).SetState("Break", true); return Done(); }