elsa-core/src/samples/console/Elsa.Samples.ConsoleApp.Bookmarks/Program.cs

43 lines
1.2 KiB
C#
Raw Normal View History

2023-04-21 22:02:02 +00:00
using Elsa.Extensions;
2023-06-08 10:01:26 +00:00
using Elsa.Samples.ConsoleApp.Bookmarks.Activities;
2023-04-21 22:02:02 +00:00
using Elsa.Workflows.Core.Activities;
using Elsa.Workflows.Core.Contracts;
using Elsa.Workflows.Core.Options;
2023-04-21 22:02:02 +00:00
using Microsoft.Extensions.DependencyInjection;
// Setup service container.
var services = new ServiceCollection();
// Add Elsa services.
services.AddElsa();
// Build service container.
var serviceProvider = services.BuildServiceProvider();
// Resolve a workflow runner to run the workflow.
var workflowRunner = serviceProvider.GetRequiredService<IWorkflowRunner>();
// Create a workflow.
var workflow = new Workflow
{
Root = new Sequence
{
Activities =
{
new WriteLine("Hello World!"),
new MyEvent(), // Blocks until the event bookmark is resumed.
new WriteLine("Event received!")
}
}
};
// Run the workflow.
var result = await workflowRunner.RunAsync(workflow);
// Resume the workflow using te created bookmark.
var bookmark = result.WorkflowState.Bookmarks.Single();
var workflowState = result.WorkflowState;
await workflowRunner.RunAsync(workflow, workflowState, new RunWorkflowOptions(bookmarkId: bookmark.Id));