elsa-core/samples/Sample12/UserTaskWorkflow.cs
2019-07-25 18:10:17 +02:00

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");
}
}
}