elsa-core/samples/Sample05/Program.cs
Sipke Schoorstra 7fb6153e0a
Refactored versioning (#67)
* Fix StringValues serialization and rename WorkflowDefinition to WorkflowDefinitionVersion

* Fix Singleton issue and add support for absolute URL using base URL for background tasks

* Fix persistence and lifetime scope issues

* Fix timer bugs

* Various bug fixes
2019-09-15 12:16:24 +02:00

53 lines
1.7 KiB
C#

using System;
using System.Threading.Tasks;
using Elsa.Activities.Console.Extensions;
using Elsa.Activities.Timers.Extensions;
using Elsa.Extensions;
using Elsa.Persistence.Memory;
using Elsa.Services;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using NodaTime;
namespace Sample05
{
/// <summary>
/// A minimal workflows program defined in code with a strongly-typed workflow class.
/// </summary>
class Program
{
static async Task Main()
{
var host = new HostBuilder()
.ConfigureServices(ConfigureServices)
.ConfigureLogging(logging => logging.AddConsole())
.UseConsoleLifetime()
.Build();
using (host)
{
SetupWorkflow(host.Services);
await host.StartAsync();
await host.WaitForShutdownAsync();
}
}
private static void SetupWorkflow(IServiceProvider services)
{
// Register the workflow.
var registry = services.GetService<IWorkflowRegistry>();
registry.RegisterWorkflow<RecurringWorkflow>();
}
private static void ConfigureServices(IServiceCollection services)
{
services
.AddWorkflows()
.AddConsoleActivities()
.AddTimerActivities(options => options.Configure(x => x.SweepInterval = Period.FromSeconds(1)))
.AddMemoryWorkflowDefinitionStore()
.AddMemoryWorkflowInstanceStore();
}
}
}