Skip to content

Commit fc3c66a

Browse files
committed
feat: add IStepExecutionContext to UserTask
1 parent a747279 commit fc3c66a

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

src/extensions/WorkflowCore.Users/ServiceExtensions/StepBuilderExtensions.cs

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public static IStepBuilder<TData, UserStep> UserStep<TData, TStepBody>(this ISte
1818
{
1919
var newStep = new UserStepContainer();
2020
newStep.Principal = assigner;
21-
newStep.UserPrompt = userPrompt;
21+
newStep.UserPrompt = userPrompt;
2222
builder.WorkflowBuilder.AddStep(newStep);
2323
var stepBuilder = new StepBuilder<TData, UserStep>(builder.WorkflowBuilder, newStep);
2424

@@ -64,5 +64,23 @@ public static IUserTaskBuilder<TData> UserTask<TData, TStepBody>(this IStepBuild
6464

6565
return stepBuilder;
6666
}
67+
68+
public static IUserTaskBuilder<TData> UserTask<TData, TStepBody>(this IStepBuilder<TData, TStepBody> builder, string userPrompt, Expression<Func<TData, IStepExecutionContext, string>> assigner, Action<IStepBuilder<TData, UserTask>> stepSetup = null)
69+
where TStepBody : IStepBody
70+
{
71+
var newStep = new UserTaskStep();
72+
builder.WorkflowBuilder.AddStep(newStep);
73+
var stepBuilder = new UserTaskBuilder<TData>(builder.WorkflowBuilder, newStep);
74+
stepBuilder.Input(step => step.AssignedPrincipal, assigner);
75+
stepBuilder.Input(step => step.Prompt, data => userPrompt);
76+
77+
if (stepSetup != null)
78+
stepSetup.Invoke(stepBuilder);
79+
80+
newStep.Name = newStep.Name ?? typeof(UserTask).Name;
81+
builder.Step.Outcomes.Add(new ValueOutcome { NextStep = newStep.Id });
82+
83+
return stepBuilder;
84+
}
6785
}
6886
}

0 commit comments

Comments
 (0)