38 lines
1.7 KiB
C#
38 lines
1.7 KiB
C#
using Elsa.Activities.Console.Activities;
|
|
using Elsa.Activities.Primitives;
|
|
using Elsa.Activities.UserTask.Activities;
|
|
using Elsa.Expressions;
|
|
using Elsa.Services;
|
|
using Elsa.Services.Models;
|
|
|
|
namespace Sample12
|
|
{
|
|
public class UserTaskWorkflow : IWorkflow
|
|
{
|
|
public void Build(IWorkflowBuilder builder)
|
|
{
|
|
builder
|
|
.StartWith<WriteLine>(activity => activity.TextExpression = new PlainTextExpression("Workflow started. Waiting for user action."))
|
|
.Then<UserTask>(
|
|
activity => activity.Actions = new[] { "Accept", "Reject", "Needs Work" },
|
|
userTask =>
|
|
{
|
|
userTask
|
|
.When("Accept")
|
|
.Then<WriteLine>(activity => activity.TextExpression = new PlainTextExpression("Great! Your work has been accepted."))
|
|
.Then("Exit");
|
|
|
|
userTask.When("Reject")
|
|
.Then<WriteLine>(activity => activity.TextExpression = new PlainTextExpression("Sorry! Your work has been rejected."))
|
|
.Then("Exit");
|
|
|
|
userTask.When("Needs Work")
|
|
.Then<WriteLine>(activity => activity.TextExpression = new PlainTextExpression("So close! Your work needs a little bit more work."))
|
|
.Then("WaitUser");
|
|
},
|
|
"WaitUser"
|
|
)
|
|
.Add<WriteLine>(activity => activity.TextExpression = new PlainTextExpression("Workflow finished."), "Exit");
|
|
}
|
|
}
|
|
} |