Add SetContextId activity
This commit is contained in:
parent
d890c668cc
commit
4b85142bd1
|
|
@ -0,0 +1,26 @@
|
|||
using Elsa.ActivityResults;
|
||||
using Elsa.Attributes;
|
||||
using Elsa.Services;
|
||||
using Elsa.Services.Models;
|
||||
|
||||
// ReSharper disable once CheckNamespace
|
||||
namespace Elsa.Activities.Primitives
|
||||
{
|
||||
[Activity(
|
||||
DisplayName = "Set Context ID",
|
||||
Description = "Set context ID on the workflow.",
|
||||
Category = "Primitives",
|
||||
Outcomes = new[] { OutcomeNames.Done }
|
||||
)]
|
||||
public class SetContextId : Activity
|
||||
{
|
||||
[ActivityProperty(Hint = "The context ID to set.")]
|
||||
public string ContextId { get; set; } = default!;
|
||||
|
||||
protected override IActivityExecutionResult OnExecute(ActivityExecutionContext context)
|
||||
{
|
||||
context.WorkflowExecutionContext.WorkflowInstance.ContextId = ContextId;
|
||||
return Done();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using Elsa.Activities.Primitives;
|
||||
using Elsa.Builders;
|
||||
using Elsa.Services.Models;
|
||||
|
||||
// ReSharper disable once CheckNamespace
|
||||
namespace Elsa.Activities.ControlFlow
|
||||
{
|
||||
public static class SetContextIdBuilderExtensions
|
||||
{
|
||||
public static IOutcomeBuilder SetContextId(this IBuilder builder, Action<ISetupActivity<SetContextId>> setup) => builder.Then(setup).When(OutcomeNames.Done);
|
||||
public static IOutcomeBuilder SetContextId(this IBuilder builder, Func<ActivityExecutionContext, ValueTask<string>> value) => builder.SetContextId(activity => activity.Set(x => x.ContextId, value!));
|
||||
public static IOutcomeBuilder SetContextId(this IBuilder builder, Func<ActivityExecutionContext, string> value) => builder.SetContextId(activity => activity.Set(x => x.ContextId, value!));
|
||||
public static IOutcomeBuilder SetContextId(this IBuilder builder, Func<ValueTask<string>> value) => builder.SetContextId(activity => activity.Set(x => x.ContextId, value!));
|
||||
public static IOutcomeBuilder SetContextId(this IBuilder builder, Func<string> value) => builder.SetContextId(activity => activity.Set(x => x.ContextId, value!));
|
||||
public static IOutcomeBuilder SetContextId(this IBuilder builder, string value) => builder.SetContextId(activity => activity.Set(x => x.ContextId, value!));
|
||||
}
|
||||
}
|
||||
|
|
@ -149,11 +149,12 @@ namespace Microsoft.Extensions.DependencyInjection
|
|||
.AddActivity<While>()
|
||||
.AddActivity<Correlate>()
|
||||
.AddActivity<SetVariable>()
|
||||
.AddActivity<SetContextId>()
|
||||
.AddActivity<ReceiveSignal>()
|
||||
.AddTriggerProvider<ReceiveSignalTriggerProvider>()
|
||||
.AddActivity<SendSignal>()
|
||||
.AddScoped<ISignaler, Signaler>()
|
||||
.AddActivity<Elsa.Activities.Workflows.RunWorkflow>()
|
||||
.AddActivity<RunWorkflow>()
|
||||
.AddTriggerProvider<RunWorkflowTriggerProvider>();
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue