Added UserTask activity (#55)
This commit is contained in:
parent
1a70cfd18c
commit
12448cde5b
28
Elsa.sln
28
Elsa.sln
|
|
@ -17,13 +17,13 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "solution", "solution", "{71
|
|||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Abstractions", "src\core\Elsa.Abstractions\Elsa.Abstractions.csproj", "{3130C574-557C-4DA2-933E-AED7A9EBE48A}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Core", "Core", "{35F44BE9-13D0-417C-A01A-F0787BEE6DC3}"
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "core", "core", "{35F44BE9-13D0-417C-A01A-F0787BEE6DC3}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Activities.Console", "src\activities\Elsa.Activities.Console\Elsa.Activities.Console.csproj", "{B98B80CB-D3A3-437C-A61C-ED82C8C77B2F}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Activities.Http", "src\activities\Elsa.Activities.Http\Elsa.Activities.Http.csproj", "{1D63E1B4-2386-4BEC-9090-C3F3CBF25703}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Activities", "Activities", "{B43B546E-23F3-46E8-ACB7-D04F05CDA180}"
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "activities", "activities", "{B43B546E-23F3-46E8-ACB7-D04F05CDA180}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Activities.Email", "src\activities\Elsa.Activities.Email\Elsa.Activities.Email.csproj", "{D20FCB88-9DCA-49EA-9CC2-5B94DD935D30}"
|
||||
EndProject
|
||||
|
|
@ -31,6 +31,14 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Activities.Timers", "s
|
|||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Activities.MassTransit", "src\activities\Elsa.Activities.MassTransit\Elsa.Activities.MassTransit.csproj", "{C4939482-9447-47D1-B6AF-E9F8C6323841}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "persistence", "persistence", "{76710230-AC6D-4E54-9A06-15F34C155118}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Persistence.YesSql", "src\persistence\Elsa.Persistence.YesSql\Elsa.Persistence.YesSql.csproj", "{4DB0741F-EAD9-4E37-862D-A1DA12462B7D}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Activities.UserTask", "src\activities\Elsa.Activities.UserTask\Elsa.Activities.UserTask.csproj", "{BC0F57E2-AB64-4026-B6E3-E03D9133DB26}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.AutoMapper.Extensions", "src\core\Elsa.AutoMapper.Extensions\Elsa.AutoMapper.Extensions.csproj", "{6CEF6AFB-635D-4FB4-B9EC-0806DD95E1BC}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
|
|
@ -65,6 +73,18 @@ Global
|
|||
{C4939482-9447-47D1-B6AF-E9F8C6323841}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C4939482-9447-47D1-B6AF-E9F8C6323841}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C4939482-9447-47D1-B6AF-E9F8C6323841}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{4DB0741F-EAD9-4E37-862D-A1DA12462B7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{4DB0741F-EAD9-4E37-862D-A1DA12462B7D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{4DB0741F-EAD9-4E37-862D-A1DA12462B7D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{4DB0741F-EAD9-4E37-862D-A1DA12462B7D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{BC0F57E2-AB64-4026-B6E3-E03D9133DB26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{BC0F57E2-AB64-4026-B6E3-E03D9133DB26}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BC0F57E2-AB64-4026-B6E3-E03D9133DB26}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{BC0F57E2-AB64-4026-B6E3-E03D9133DB26}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{6CEF6AFB-635D-4FB4-B9EC-0806DD95E1BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{6CEF6AFB-635D-4FB4-B9EC-0806DD95E1BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{6CEF6AFB-635D-4FB4-B9EC-0806DD95E1BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{6CEF6AFB-635D-4FB4-B9EC-0806DD95E1BC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
|
@ -79,6 +99,10 @@ Global
|
|||
{D20FCB88-9DCA-49EA-9CC2-5B94DD935D30} = {B43B546E-23F3-46E8-ACB7-D04F05CDA180}
|
||||
{E4B71DC4-3E73-49C3-9B4E-CA13909F222D} = {B43B546E-23F3-46E8-ACB7-D04F05CDA180}
|
||||
{C4939482-9447-47D1-B6AF-E9F8C6323841} = {B43B546E-23F3-46E8-ACB7-D04F05CDA180}
|
||||
{76710230-AC6D-4E54-9A06-15F34C155118} = {DA71CDAA-8DD3-4D5F-9FBD-8E4B37A2D925}
|
||||
{4DB0741F-EAD9-4E37-862D-A1DA12462B7D} = {76710230-AC6D-4E54-9A06-15F34C155118}
|
||||
{BC0F57E2-AB64-4026-B6E3-E03D9133DB26} = {B43B546E-23F3-46E8-ACB7-D04F05CDA180}
|
||||
{6CEF6AFB-635D-4FB4-B9EC-0806DD95E1BC} = {35F44BE9-13D0-417C-A01A-F0787BEE6DC3}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {8B0975FD-7050-48B0-88C5-48C33378E158}
|
||||
|
|
|
|||
20
Samples.sln
20
Samples.sln
|
|
@ -17,13 +17,13 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "solution", "solution", "{71
|
|||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Abstractions", "src\core\Elsa.Abstractions\Elsa.Abstractions.csproj", "{3130C574-557C-4DA2-933E-AED7A9EBE48A}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Core", "Core", "{35F44BE9-13D0-417C-A01A-F0787BEE6DC3}"
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "core", "core", "{35F44BE9-13D0-417C-A01A-F0787BEE6DC3}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Activities.Console", "src\activities\Elsa.Activities.Console\Elsa.Activities.Console.csproj", "{B98B80CB-D3A3-437C-A61C-ED82C8C77B2F}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Activities.Http", "src\activities\Elsa.Activities.Http\Elsa.Activities.Http.csproj", "{1D63E1B4-2386-4BEC-9090-C3F3CBF25703}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Activities", "Activities", "{B43B546E-23F3-46E8-ACB7-D04F05CDA180}"
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "activities", "activities", "{B43B546E-23F3-46E8-ACB7-D04F05CDA180}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Activities.Email", "src\activities\Elsa.Activities.Email\Elsa.Activities.Email.csproj", "{D20FCB88-9DCA-49EA-9CC2-5B94DD935D30}"
|
||||
EndProject
|
||||
|
|
@ -51,7 +51,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sample08", "samples\Sample0
|
|||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sample09", "samples\Sample09\Sample09.csproj", "{E8622C16-D80B-46A7-99D4-B939B20FBFD6}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Persistence", "Persistence", "{600C4AE0-0585-4181-9CEC-2BB43430C713}"
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "persistence", "persistence", "{600C4AE0-0585-4181-9CEC-2BB43430C713}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Persistence.YesSql", "src\persistence\Elsa.Persistence.YesSql\Elsa.Persistence.YesSql.csproj", "{905C1067-2119-443D-B5FE-DA8E027FAD62}"
|
||||
EndProject
|
||||
|
|
@ -61,6 +61,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.AutoMapper.Extensions"
|
|||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sample11", "samples\Sample11\Sample11.csproj", "{0C3BB425-2FED-4ADF-8DBE-D68DF0CA5A41}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Activities.UserTask", "src\activities\Elsa.Activities.UserTask\Elsa.Activities.UserTask.csproj", "{823F80B6-E241-43F7-83BD-29FBB58A77F9}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sample12", "samples\Sample12\Sample12.csproj", "{D0F68FBB-17C6-421E-B8AE-AAAFE111BF0B}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
|
|
@ -147,6 +151,14 @@ Global
|
|||
{0C3BB425-2FED-4ADF-8DBE-D68DF0CA5A41}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{0C3BB425-2FED-4ADF-8DBE-D68DF0CA5A41}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{0C3BB425-2FED-4ADF-8DBE-D68DF0CA5A41}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{823F80B6-E241-43F7-83BD-29FBB58A77F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{823F80B6-E241-43F7-83BD-29FBB58A77F9}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{823F80B6-E241-43F7-83BD-29FBB58A77F9}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{823F80B6-E241-43F7-83BD-29FBB58A77F9}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{D0F68FBB-17C6-421E-B8AE-AAAFE111BF0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D0F68FBB-17C6-421E-B8AE-AAAFE111BF0B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D0F68FBB-17C6-421E-B8AE-AAAFE111BF0B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D0F68FBB-17C6-421E-B8AE-AAAFE111BF0B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
|
@ -175,6 +187,8 @@ Global
|
|||
{E0076858-353F-4302-9690-920204E38BF6} = {5E5E1E84-DDBC-40D6-B891-0D563A15A44A}
|
||||
{F7633BE5-0335-4148-8FB7-EAED9A2276A2} = {35F44BE9-13D0-417C-A01A-F0787BEE6DC3}
|
||||
{0C3BB425-2FED-4ADF-8DBE-D68DF0CA5A41} = {5E5E1E84-DDBC-40D6-B891-0D563A15A44A}
|
||||
{823F80B6-E241-43F7-83BD-29FBB58A77F9} = {B43B546E-23F3-46E8-ACB7-D04F05CDA180}
|
||||
{D0F68FBB-17C6-421E-B8AE-AAAFE111BF0B} = {5E5E1E84-DDBC-40D6-B891-0D563A15A44A}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {8B0975FD-7050-48B0-88C5-48C33378E158}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ namespace Sample06
|
|||
{
|
||||
builder
|
||||
.StartWith<HttpRequestEvent>(activity => activity.Path = new Uri("/hello-world", UriKind.RelativeOrAbsolute))
|
||||
.Then<HttpResponseTask>(
|
||||
.Then<HttpResponseAction>(
|
||||
activity =>
|
||||
{
|
||||
activity.Content = new PlainTextExpression("<h1>Hello World!</h1><p>Elsa says hi :)</p>");
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ namespace Sample07
|
|||
);
|
||||
}
|
||||
)
|
||||
.Then<HttpResponseTask>(
|
||||
.Then<HttpResponseAction>(
|
||||
activity =>
|
||||
{
|
||||
activity.Content = new PlainTextExpression("<h1>Request for Approval Sent</h1><p>Your document has been received and will be reviewed shortly.</p>");
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ namespace Sample08.Workflows
|
|||
{
|
||||
fork
|
||||
.When("Write-Response")
|
||||
.Then<HttpResponseTask>(
|
||||
.Then<HttpResponseAction>(
|
||||
activity =>
|
||||
{
|
||||
activity.Content = new PlainTextExpression("<h1>Order Received</h1><p>Your order has been received. Waiting for shipment.</p>");
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ using Elsa.Activities.Primitives;
|
|||
using Elsa.Extensions;
|
||||
using Elsa.Models;
|
||||
using Elsa.Persistence.Memory;
|
||||
using Elsa.Runtime;
|
||||
using Elsa.Services;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
|
|
@ -54,7 +53,6 @@ namespace Sample11
|
|||
{
|
||||
return new ServiceCollection()
|
||||
.AddWorkflows()
|
||||
.AddStartupRunner()
|
||||
.AddConsoleActivities()
|
||||
.AddMemoryWorkflowDefinitionStore()
|
||||
.AddMemoryWorkflowInstanceStore()
|
||||
|
|
|
|||
56
samples/Sample12/Program.cs
Normal file
56
samples/Sample12/Program.cs
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Elsa.Activities.Console.Extensions;
|
||||
using Elsa.Activities.Primitives;
|
||||
using Elsa.Activities.UserTask.Extensions;
|
||||
using Elsa.Extensions;
|
||||
using Elsa.Models;
|
||||
using Elsa.Persistence.Memory;
|
||||
using Elsa.Runtime;
|
||||
using Elsa.Services;
|
||||
using Elsa.Services.Extensions;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace Sample12
|
||||
{
|
||||
/// <summary>
|
||||
/// Demonstrates workflow correlation.
|
||||
/// </summary>
|
||||
public class Program
|
||||
{
|
||||
public static async Task Main(string[] args)
|
||||
{
|
||||
var services = BuildServices();
|
||||
var registry = services.GetService<IWorkflowRegistry>();
|
||||
var workflowDefinition = registry.RegisterWorkflow<UserTaskWorkflow>();
|
||||
var invoker = services.GetRequiredService<IWorkflowInvoker>();
|
||||
|
||||
// Invoke the workflow.
|
||||
var executionContext = await invoker.InvokeAsync(workflowDefinition);
|
||||
|
||||
do
|
||||
{
|
||||
// Workflow is now halted on the user task activity. Ask user for input:
|
||||
Console.WriteLine("What action will you take? Choose one of: Accept, Reject, Needs Work");
|
||||
var userAction = Console.ReadLine();
|
||||
|
||||
// Resume the workflow with the received stimulus.
|
||||
var blockingActivities = executionContext.Workflow.BlockingActivities.Select(x => x.Id);
|
||||
executionContext = await invoker.ResumeAsync(executionContext.Workflow.ToInstance(), new Variables { ["UserAction"] = userAction }, blockingActivities);
|
||||
|
||||
} while (executionContext.Workflow.IsHalted());
|
||||
}
|
||||
|
||||
private static IServiceProvider BuildServices()
|
||||
{
|
||||
return new ServiceCollection()
|
||||
.AddWorkflows()
|
||||
.AddConsoleActivities()
|
||||
.AddUserTaskActivities()
|
||||
.AddMemoryWorkflowDefinitionStore()
|
||||
.AddMemoryWorkflowInstanceStore()
|
||||
.BuildServiceProvider();
|
||||
}
|
||||
}
|
||||
}
|
||||
14
samples/Sample12/Sample12.csproj
Normal file
14
samples/Sample12/Sample12.csproj
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp2.2</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\src\activities\Elsa.Activities.Console\Elsa.Activities.Console.csproj" />
|
||||
<ProjectReference Include="..\..\src\activities\Elsa.Activities.UserTask\Elsa.Activities.UserTask.csproj" />
|
||||
<ProjectReference Include="..\..\src\core\Elsa.Core\Elsa.Core.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
38
samples/Sample12/UserTaskWorkflow.cs
Normal file
38
samples/Sample12/UserTaskWorkflow.cs
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
using Elsa.Activities.Console.Activities;
|
||||
using Elsa.Activities.Primitives;
|
||||
using Elsa.Activities.UserTask.Activities;
|
||||
using Elsa.Expressions;
|
||||
using Elsa.Services;
|
||||
using Elsa.Services.Models;
|
||||
|
||||
namespace Sample12
|
||||
{
|
||||
public class UserTaskWorkflow : IWorkflow
|
||||
{
|
||||
public void Build(IWorkflowBuilder builder)
|
||||
{
|
||||
builder
|
||||
.StartWith<WriteLine>(activity => activity.TextExpression = new PlainTextExpression("Workflow started. Waiting for user action."))
|
||||
.Then<UserTask>(
|
||||
activity => activity.Actions = new[] { "Accept", "Reject", "Needs Work" },
|
||||
userTask =>
|
||||
{
|
||||
userTask
|
||||
.When("Accept")
|
||||
.Then<WriteLine>(activity => activity.TextExpression = new PlainTextExpression("Great! Your work has been accepted."))
|
||||
.Then("Exit");
|
||||
|
||||
userTask.When("Reject")
|
||||
.Then<WriteLine>(activity => activity.TextExpression = new PlainTextExpression("Sorry! Your work has been rejected."))
|
||||
.Then("Exit");
|
||||
|
||||
userTask.When("Needs Work")
|
||||
.Then<WriteLine>(activity => activity.TextExpression = new PlainTextExpression("So close! Your work needs a little bit more work."))
|
||||
.Then("WaitUser");
|
||||
},
|
||||
"WaitUser"
|
||||
)
|
||||
.Add<WriteLine>(activity => activity.TextExpression = new PlainTextExpression("Workflow finished."), "Exit");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -7,8 +7,8 @@
|
|||
<Authors>Sipke Schoorstra</Authors>
|
||||
<Description>Elsa is a set of workflowing libraries and tools to enable super-fast workflowing capabilities in any .NET Core application.</Description>
|
||||
<Copyright>2019</Copyright>
|
||||
<PackageProjectUrl>https://github.com/sfmskywalker/Elsa</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/sfmskywalker/Elsa</RepositoryUrl>
|
||||
<PackageProjectUrl>https://github.com/elsa-workflows/elsa-core</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/elsa-workflows/elsa-core</RepositoryUrl>
|
||||
<RepositoryType>GitHub</RepositoryType>
|
||||
<PackageTags>elsa, workflows, orchard</PackageTags>
|
||||
</PropertyGroup>
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@
|
|||
<Authors>Sipke Schoorstra</Authors>
|
||||
<Description>Elsa is a set of workflowing libraries and tools to enable super-fast workflowing capabilities in any .NET Core application.</Description>
|
||||
<Copyright>2019</Copyright>
|
||||
<PackageProjectUrl>https://github.com/sfmskywalker/Elsa</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/sfmskywalker/Elsa</RepositoryUrl>
|
||||
<PackageProjectUrl>https://github.com/elsa-workflows/elsa-core</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/elsa-workflows/elsa-core</RepositoryUrl>
|
||||
<RepositoryType>GitHub</RepositoryType>
|
||||
<PackageTags>elsa, workflows, orchard</PackageTags>
|
||||
</PropertyGroup>
|
||||
|
|
|
|||
|
|
@ -13,12 +13,12 @@ using Microsoft.AspNetCore.Http;
|
|||
|
||||
namespace Elsa.Activities.Http.Activities
|
||||
{
|
||||
public class HttpResponseTask : Activity
|
||||
public class HttpResponseAction : Activity
|
||||
{
|
||||
private readonly IWorkflowExpressionEvaluator expressionEvaluator;
|
||||
private readonly IHttpContextAccessor httpContextAccessor;
|
||||
|
||||
public HttpResponseTask(IWorkflowExpressionEvaluator expressionEvaluator, IHttpContextAccessor httpContextAccessor)
|
||||
public HttpResponseAction(IWorkflowExpressionEvaluator expressionEvaluator, IHttpContextAccessor httpContextAccessor)
|
||||
{
|
||||
this.expressionEvaluator = expressionEvaluator;
|
||||
this.httpContextAccessor = httpContextAccessor;
|
||||
|
|
@ -7,8 +7,8 @@
|
|||
<Authors>Sipke Schoorstra</Authors>
|
||||
<Description>Elsa is a set of workflowing libraries and tools to enable super-fast workflowing capabilities in any .NET Core application.</Description>
|
||||
<Copyright>2019</Copyright>
|
||||
<PackageProjectUrl>https://github.com/sfmskywalker/Elsa</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/sfmskywalker/Elsa</RepositoryUrl>
|
||||
<PackageProjectUrl>https://github.com/elsa-workflows/elsa-core</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/elsa-workflows/elsa-core</RepositoryUrl>
|
||||
<RepositoryType>GitHub</RepositoryType>
|
||||
<PackageTags>elsa, workflows, orchard</PackageTags>
|
||||
</PropertyGroup>
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ namespace Elsa.Activities.Http.Extensions
|
|||
|
||||
services
|
||||
.AddActivity<HttpRequestEvent>()
|
||||
.AddActivity<HttpResponseTask>()
|
||||
.AddActivity<HttpResponseAction>()
|
||||
.AddActivity<HttpRequestAction>();
|
||||
|
||||
services
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@
|
|||
<Authors>Sipke Schoorstra</Authors>
|
||||
<Description>Elsa is a set of workflowing libraries and tools to enable super-fast workflowing capabilities in any .NET Core application.</Description>
|
||||
<Copyright>2019</Copyright>
|
||||
<PackageProjectUrl>https://github.com/sfmskywalker/Elsa</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/sfmskywalker/Elsa</RepositoryUrl>
|
||||
<PackageProjectUrl>https://github.com/elsa-workflows/elsa-core</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/elsa-workflows/elsa-core</RepositoryUrl>
|
||||
<RepositoryType>GitHub</RepositoryType>
|
||||
<PackageTags>elsa, workflows, orchard</PackageTags>
|
||||
</PropertyGroup>
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@
|
|||
<Authors>Sipke Schoorstra</Authors>
|
||||
<Description>Elsa is a set of workflowing libraries and tools to enable super-fast workflowing capabilities in any .NET Core application.</Description>
|
||||
<Copyright>2019</Copyright>
|
||||
<PackageProjectUrl>https://github.com/sfmskywalker/Elsa</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/sfmskywalker/Elsa</RepositoryUrl>
|
||||
<PackageProjectUrl>https://github.com/elsa-workflows/elsa-core</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/elsa-workflows/elsa-core</RepositoryUrl>
|
||||
<RepositoryType>GitHub</RepositoryType>
|
||||
<PackageTags>elsa, workflows, orchard</PackageTags>
|
||||
</PropertyGroup>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,40 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
using Elsa.Results;
|
||||
using Elsa.Services;
|
||||
using Elsa.Services.Models;
|
||||
|
||||
namespace Elsa.Activities.UserTask.Activities
|
||||
{
|
||||
/// <summary>
|
||||
/// Stores a set of possible user actions and halts the workflow until one of the actions has been performed.
|
||||
/// </summary>
|
||||
public class UserTask : Activity
|
||||
{
|
||||
public string[] Actions
|
||||
{
|
||||
get => GetState(() => new string[0]);
|
||||
set => SetState(value);
|
||||
}
|
||||
|
||||
protected override bool OnCanExecute(WorkflowExecutionContext context)
|
||||
{
|
||||
var userAction = GetUserAction(context);
|
||||
|
||||
return Actions.Contains(userAction, StringComparer.OrdinalIgnoreCase);
|
||||
}
|
||||
|
||||
protected override ActivityExecutionResult OnExecute(WorkflowExecutionContext context)
|
||||
{
|
||||
return Halt(true);
|
||||
}
|
||||
|
||||
protected override ActivityExecutionResult OnResume(WorkflowExecutionContext context)
|
||||
{
|
||||
var userAction = GetUserAction(context);
|
||||
return Outcome(userAction);
|
||||
}
|
||||
|
||||
private string GetUserAction(WorkflowExecutionContext context) => (string) context.Workflow.Input.GetVariable("UserAction");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<PackageVersion>1.0.0</PackageVersion>
|
||||
<LangVersion>latest</LangVersion>
|
||||
<Authors>Sipke Schoorstra</Authors>
|
||||
<Description>Elsa is a set of workflowing libraries and tools to enable super-fast workflowing capabilities in any .NET Core application.</Description>
|
||||
<Copyright>2019</Copyright>
|
||||
<PackageProjectUrl>https://github.com/elsa-workflows/elsa-core</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/elsa-workflows/elsa-core</RepositoryUrl>
|
||||
<RepositoryType>GitHub</RepositoryType>
|
||||
<PackageTags>elsa, workflows, orchard</PackageTags>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\core\Elsa.Core\Elsa.Core.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
using Elsa.Extensions;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace Elsa.Activities.UserTask.Extensions
|
||||
{
|
||||
using UserTask = Elsa.Activities.UserTask.Activities.UserTask;
|
||||
|
||||
public static class ServiceCollectionExtensions
|
||||
{
|
||||
public static IServiceCollection AddUserTaskActivities(this IServiceCollection services)
|
||||
{
|
||||
return services
|
||||
.AddActivity<UserTask>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -8,8 +8,8 @@
|
|||
<Authors>Sipke Schoorstra</Authors>
|
||||
<Description>Elsa is a set of workflowing libraries and tools to enable super-fast workflowing capabilities in any .NET Core application.</Description>
|
||||
<Copyright>2019</Copyright>
|
||||
<PackageProjectUrl>https://github.com/sfmskywalker/Elsa</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/sfmskywalker/Elsa</RepositoryUrl>
|
||||
<PackageProjectUrl>https://github.com/elsa-workflows/elsa-core</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/elsa-workflows/elsa-core</RepositoryUrl>
|
||||
<RepositoryType>GitHub</RepositoryType>
|
||||
<PackageTags>elsa, workflows, orchard</PackageTags>
|
||||
</PropertyGroup>
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@
|
|||
<Authors>Sipke Schoorstra</Authors>
|
||||
<Description>Elsa is a set of workflowing libraries and tools to enable super-fast workflowing capabilities in any .NET Core application.</Description>
|
||||
<Copyright>2019</Copyright>
|
||||
<PackageProjectUrl>https://github.com/sfmskywalker/Elsa</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/sfmskywalker/Elsa</RepositoryUrl>
|
||||
<PackageProjectUrl>https://github.com/elsa-workflows/elsa-core</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/elsa-workflows/elsa-core</RepositoryUrl>
|
||||
<RepositoryType>GitHub</RepositoryType>
|
||||
<PackageTags>elsa, workflows, orchard</PackageTags>
|
||||
</PropertyGroup>
|
||||
|
|
|
|||
Loading…
Reference in a new issue