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(); // 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 });