public static IUserTaskBuilder <TData> UserTask <TData, TStepBody>(this IStepBuilder <TData, TStepBody> builder, string userPrompt, Expression <Func <TData, string> > assigner, Action <IStepBuilder <TData, UserTask> > stepSetup = null) where TStepBody : IStepBody { var newStep = new UserTaskStep(); builder.WorkflowBuilder.AddStep(newStep); var stepBuilder = new UserTaskBuilder <TData>(builder.WorkflowBuilder, newStep); stepBuilder.Input(step => step.AssignedPrincipal, assigner); stepBuilder.Input(step => step.Prompt, data => userPrompt); if (stepSetup != null) { stepSetup.Invoke(stepBuilder); } newStep.Name = newStep.Name ?? typeof(UserTask).Name; builder.Step.Outcomes.Add(new ValueOutcome { NextStep = newStep.Id }); return(stepBuilder); }
public UserTaskBuilder(IWorkflowBuilder <TData> workflowBuilder, UserTaskStep step) : base(workflowBuilder, step) { _wrapper = step; }