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

53 lines
1.9 KiB
C#
Raw Normal View History

using System;
using System.Threading.Tasks;
using Elsa.Models;
using Elsa.Persistence;
using Elsa.Persistence.Specifications;
using Elsa.Persistence.YesSql.Extensions;
2020-02-18 21:29:44 +00:00
using Elsa.Services;
using Microsoft.Extensions.DependencyInjection;
namespace Elsa.Samples.HelloWorldConsole
{
class Program
{
private static async Task Main()
2020-02-18 21:29:44 +00:00
{
// Create a service container with Elsa services.
2020-10-10 20:14:10 +00:00
var services = new ServiceCollection()
.AddElsa(options => options.UseYesSqlPersistence())
2020-02-18 21:29:44 +00:00
.AddConsoleActivities()
.AddWorkflow<HelloWorld>()
.AddAutoMapperProfiles<Program>()
2020-02-18 21:29:44 +00:00
.BuildServiceProvider();
2020-10-10 19:10:09 +00:00
// Run startup actions (not needed when registering Elsa with a Host).
var startupRunner = services.GetRequiredService<IStartupRunner>();
await startupRunner.StartupAsync();
2020-11-03 08:46:38 +00:00
// Get a workflow runner.
var workflowRunner = services.GetRequiredService<IWorkflowRunner>();
2020-02-18 21:29:44 +00:00
2020-11-03 08:46:38 +00:00
// Run the workflow.
await workflowRunner.RunWorkflowAsync<HelloWorld>();
var store = services.GetRequiredService<IWorkflowInstanceStore>();
var results = await store.FindManyAsync(
new WorkflowInstanceDefinitionIdSpecification(nameof(HelloWorld)),
2020-12-17 14:47:21 +00:00
OrderBySpecification.OrderByDescending<WorkflowInstance>(x => x.CreatedAt),
Paging.Page(1, 2));
var count = await store.CountAsync(
new WorkflowInstanceDefinitionIdSpecification(nameof(HelloWorld)),
2020-12-17 14:47:21 +00:00
OrderBySpecification.OrderByDescending<WorkflowInstance>(x => x.CreatedAt));
Console.WriteLine(count);
foreach (var result in results)
{
Console.WriteLine(result.CreatedAt);
}
2020-02-18 21:29:44 +00:00
}
}
}