elsa-core/samples/console/Elsa.Samples.ConsoleApp.Bookmarks/Program.cs
2024-02-02 20:01:14 +02:00

41 lines
1.1 KiB
C#

using Elsa.Extensions;
using Elsa.Samples.ConsoleApp.Bookmarks.Activities;
using Elsa.Workflows.Activities;
using Elsa.Workflows.Contracts;
using Elsa.Workflows.Options;
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 });