Update WorkflowBuilderExtensions

This commit is contained in:
Sipke Schoorstra 2020-12-02 20:28:48 +01:00
parent 0e1262051a
commit 055482b935

View file

@ -6,21 +6,21 @@ using Elsa.Services.Models;
namespace Elsa.Builders
{
public static class WorkflowBuilderExtensions
public static class CompositeActivityBuilderExtensions
{
public static IActivityBuilder StartWith(this ICompositeActivityBuilder builder, Action action) => builder.StartWith<Inline>(inline => inline.Set(x => x.Function, RunInline(action)));
public static IActivityBuilder
StartWith(this IWorkflowBuilder builder, Action<ActivityExecutionContext> action) =>
StartWith(this ICompositeActivityBuilder builder, Action<ActivityExecutionContext> action) =>
builder.StartWith<Inline>(inline => inline.Set(x => x.Function, RunInline(action)));
public static IActivityBuilder StartWith(
this IWorkflowBuilder builder,
this ICompositeActivityBuilder builder,
Func<ActivityExecutionContext, ValueTask> action) =>
builder.StartWith<Inline>(inline => inline.Set(x => x.Function, RunInline(action)));
public static IActivityBuilder StartWith(
this IWorkflowBuilder builder,
this ICompositeActivityBuilder builder,
Func<ActivityExecutionContext, ValueTask<IActivityExecutionResult>> action) =>
builder.StartWith<Inline>(inline => inline.Set(x => x.Function, RunInline(action)));
@ -39,30 +39,26 @@ namespace Elsa.Builders
builder.SetVariable(variableName, value());
private static Func<ActivityExecutionContext, ValueTask<IActivityExecutionResult>> RunInline(Action action) =>
context =>
_ =>
{
action();
return new ValueTask<IActivityExecutionResult>(new DoneResult());
};
private static Func<ActivityExecutionContext, ValueTask<IActivityExecutionResult>> RunInline(
Action<ActivityExecutionContext> action) =>
private static Func<ActivityExecutionContext, ValueTask<IActivityExecutionResult>> RunInline(Action<ActivityExecutionContext> action) =>
context =>
{
action(context);
return new ValueTask<IActivityExecutionResult>(new DoneResult());
};
private static Func<ActivityExecutionContext, ValueTask<IActivityExecutionResult>> RunInline(
Func<ActivityExecutionContext, ValueTask> action) =>
private static Func<ActivityExecutionContext, ValueTask<IActivityExecutionResult>> RunInline(Func<ActivityExecutionContext, ValueTask> action) =>
async context =>
{
await action(context);
return new DoneResult();
};
private static Func<ActivityExecutionContext, ValueTask<IActivityExecutionResult>> RunInline(
Func<ActivityExecutionContext, ValueTask<IActivityExecutionResult>> action) =>
async context => await action(context);
private static Func<ActivityExecutionContext, ValueTask<IActivityExecutionResult>> RunInline(Func<ActivityExecutionContext, ValueTask<IActivityExecutionResult>> action) => async context => await action(context);
}
}