From dee71aa0da993a88d4e317ef41c8e87f27df5c9c Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Thu, 25 Aug 2022 19:56:18 +0200 Subject: [PATCH] Scaffold two new sample projects --- Elsa.sln | 17 ++++++++++ .../Elsa.Samples.Worker1.csproj | 13 +++++++ src/samples/Elsa.Samples.Worker1/Program.cs | 7 ++++ .../Properties/launchSettings.json | 11 ++++++ src/samples/Elsa.Samples.Worker1/Worker.cs | 20 +++++++++++ .../appsettings.Development.json | 8 +++++ .../Elsa.Samples.Worker1/appsettings.json | 8 +++++ .../Elsa.Samples.Console3.csproj | 14 ++++++++ .../console/Elsa.Samples.Console3/Program.cs | 34 +++++++++++++++++++ .../Workflows/HelloWorld.cs | 19 +++++++++++ 10 files changed, 151 insertions(+) create mode 100644 src/samples/Elsa.Samples.Worker1/Elsa.Samples.Worker1.csproj create mode 100644 src/samples/Elsa.Samples.Worker1/Program.cs create mode 100644 src/samples/Elsa.Samples.Worker1/Properties/launchSettings.json create mode 100644 src/samples/Elsa.Samples.Worker1/Worker.cs create mode 100644 src/samples/Elsa.Samples.Worker1/appsettings.Development.json create mode 100644 src/samples/Elsa.Samples.Worker1/appsettings.json create mode 100644 src/samples/console/Elsa.Samples.Console3/Elsa.Samples.Console3.csproj create mode 100644 src/samples/console/Elsa.Samples.Console3/Program.cs create mode 100644 src/samples/console/Elsa.Samples.Console3/Workflows/HelloWorld.cs diff --git a/Elsa.sln b/Elsa.sln index 69b533e49..d95f59352 100644 --- a/Elsa.sln +++ b/Elsa.sln @@ -122,6 +122,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Jobs", "src\modules\El EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Common", "src\modules\Elsa.Common\Elsa.Common.csproj", "{D229105F-6879-4452-9189-75DE060C0F4C}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Samples.Console3", "src\samples\console\Elsa.Samples.Console3\Elsa.Samples.Console3.csproj", "{517B703A-7653-4036-AAB5-7B4293D39D0F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "worker", "worker", "{389D40B8-005F-46A1-9493-1FE6065F04FD}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Samples.Worker1", "src\samples\Elsa.Samples.Worker1\Elsa.Samples.Worker1.csproj", "{197223FB-2472-442C-BD10-2E1F931285BC}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -324,6 +330,14 @@ Global {D229105F-6879-4452-9189-75DE060C0F4C}.Debug|Any CPU.Build.0 = Debug|Any CPU {D229105F-6879-4452-9189-75DE060C0F4C}.Release|Any CPU.ActiveCfg = Release|Any CPU {D229105F-6879-4452-9189-75DE060C0F4C}.Release|Any CPU.Build.0 = Release|Any CPU + {517B703A-7653-4036-AAB5-7B4293D39D0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {517B703A-7653-4036-AAB5-7B4293D39D0F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {517B703A-7653-4036-AAB5-7B4293D39D0F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {517B703A-7653-4036-AAB5-7B4293D39D0F}.Release|Any CPU.Build.0 = Release|Any CPU + {197223FB-2472-442C-BD10-2E1F931285BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {197223FB-2472-442C-BD10-2E1F931285BC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {197223FB-2472-442C-BD10-2E1F931285BC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {197223FB-2472-442C-BD10-2E1F931285BC}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution {155227F0-A33B-40AA-A4B4-06F813EB921B} = {61017E64-6D00-49CB-9E81-5002DC8F7D5F} @@ -381,5 +395,8 @@ Global {81A2AE6B-3D0C-4A4A-A80B-7A661FBC8117} = {5BA4A8FA-F7F4-45B3-AEC8-8886D35AAC79} {CF1938A0-BD10-4AA1-9ABC-6D02303A9D53} = {5BA4A8FA-F7F4-45B3-AEC8-8886D35AAC79} {D229105F-6879-4452-9189-75DE060C0F4C} = {5BA4A8FA-F7F4-45B3-AEC8-8886D35AAC79} + {517B703A-7653-4036-AAB5-7B4293D39D0F} = {873BFC3E-63C2-4495-A503-5EC05DCD84E4} + {389D40B8-005F-46A1-9493-1FE6065F04FD} = {155227F0-A33B-40AA-A4B4-06F813EB921B} + {197223FB-2472-442C-BD10-2E1F931285BC} = {389D40B8-005F-46A1-9493-1FE6065F04FD} EndGlobalSection EndGlobal diff --git a/src/samples/Elsa.Samples.Worker1/Elsa.Samples.Worker1.csproj b/src/samples/Elsa.Samples.Worker1/Elsa.Samples.Worker1.csproj new file mode 100644 index 000000000..1737a7b56 --- /dev/null +++ b/src/samples/Elsa.Samples.Worker1/Elsa.Samples.Worker1.csproj @@ -0,0 +1,13 @@ + + + + net6.0 + enable + enable + dotnet-Elsa.Samples.Worker1-8CF3B787-1D60-4B1A-A118-71B9CF9E3D9F + + + + + + diff --git a/src/samples/Elsa.Samples.Worker1/Program.cs b/src/samples/Elsa.Samples.Worker1/Program.cs new file mode 100644 index 000000000..09f6448fb --- /dev/null +++ b/src/samples/Elsa.Samples.Worker1/Program.cs @@ -0,0 +1,7 @@ +using Elsa.Samples.Worker1; + +IHost host = Host.CreateDefaultBuilder(args) + .ConfigureServices(services => { services.AddHostedService(); }) + .Build(); + +await host.RunAsync(); \ No newline at end of file diff --git a/src/samples/Elsa.Samples.Worker1/Properties/launchSettings.json b/src/samples/Elsa.Samples.Worker1/Properties/launchSettings.json new file mode 100644 index 000000000..9b0e4fbce --- /dev/null +++ b/src/samples/Elsa.Samples.Worker1/Properties/launchSettings.json @@ -0,0 +1,11 @@ +{ + "profiles": { + "Elsa.Samples.Worker1": { + "commandName": "Project", + "dotnetRunMessages": true, + "environmentVariables": { + "DOTNET_ENVIRONMENT": "Development" + } + } + } +} diff --git a/src/samples/Elsa.Samples.Worker1/Worker.cs b/src/samples/Elsa.Samples.Worker1/Worker.cs new file mode 100644 index 000000000..06e02b7a9 --- /dev/null +++ b/src/samples/Elsa.Samples.Worker1/Worker.cs @@ -0,0 +1,20 @@ +namespace Elsa.Samples.Worker1; + +public class Worker : BackgroundService +{ + private readonly ILogger _logger; + + public Worker(ILogger logger) + { + _logger = logger; + } + + protected override async Task ExecuteAsync(CancellationToken stoppingToken) + { + while (!stoppingToken.IsCancellationRequested) + { + _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now); + await Task.Delay(1000, stoppingToken); + } + } +} \ No newline at end of file diff --git a/src/samples/Elsa.Samples.Worker1/appsettings.Development.json b/src/samples/Elsa.Samples.Worker1/appsettings.Development.json new file mode 100644 index 000000000..b2dcdb674 --- /dev/null +++ b/src/samples/Elsa.Samples.Worker1/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.Hosting.Lifetime": "Information" + } + } +} diff --git a/src/samples/Elsa.Samples.Worker1/appsettings.json b/src/samples/Elsa.Samples.Worker1/appsettings.json new file mode 100644 index 000000000..b2dcdb674 --- /dev/null +++ b/src/samples/Elsa.Samples.Worker1/appsettings.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.Hosting.Lifetime": "Information" + } + } +} diff --git a/src/samples/console/Elsa.Samples.Console3/Elsa.Samples.Console3.csproj b/src/samples/console/Elsa.Samples.Console3/Elsa.Samples.Console3.csproj new file mode 100644 index 000000000..339111a54 --- /dev/null +++ b/src/samples/console/Elsa.Samples.Console3/Elsa.Samples.Console3.csproj @@ -0,0 +1,14 @@ + + + + Exe + net6.0 + enable + enable + + + + + + + diff --git a/src/samples/console/Elsa.Samples.Console3/Program.cs b/src/samples/console/Elsa.Samples.Console3/Program.cs new file mode 100644 index 000000000..cdb25674a --- /dev/null +++ b/src/samples/console/Elsa.Samples.Console3/Program.cs @@ -0,0 +1,34 @@ +using Elsa.Extensions; +using Elsa.Workflows.Core.Activities; +using Elsa.Workflows.Core.Models; +using Elsa.Workflows.Core.Services; +using Microsoft.Extensions.DependencyInjection; + +// Setup a service container from which we can resolve Elsa services. +var services = new ServiceCollection(); + +// Add Elsa services to the service collection. +services.AddElsa(); + +// Build a service provider. +var serviceProvider = services.BuildServiceProvider(); + +// Resolve a workflow runner. +var workflowRunner = serviceProvider.GetRequiredService(); + +// Define a workflow. +//var workflow = new WriteLine("Hello World!"); +var workflow = new Workflow +{ + Root = new Sequence + { + Activities = + { + new WriteLine("Hello World!"), + new WriteLine("Goodbye cruel world..."), + } + } +}; + +// Execute the workflow. +workflowRunner.RunAsync(workflow); \ No newline at end of file diff --git a/src/samples/console/Elsa.Samples.Console3/Workflows/HelloWorld.cs b/src/samples/console/Elsa.Samples.Console3/Workflows/HelloWorld.cs new file mode 100644 index 000000000..cebdb7903 --- /dev/null +++ b/src/samples/console/Elsa.Samples.Console3/Workflows/HelloWorld.cs @@ -0,0 +1,19 @@ +using Elsa.Workflows.Core.Activities; +using Elsa.Workflows.Core.Services; + +namespace Elsa.Samples.Console3.Workflows; + +public class HelloWorld : WorkflowBase +{ + protected override void Build(IWorkflowBuilder builder) + { + builder.Root = new Sequence + { + Activities = + { + new WriteLine("Hello World!"), + new WriteLine("Goodbye cruel world...") + } + }; + } +} \ No newline at end of file