Removed the iFailedLoopback and replaced it with a IOutcome<T> allowing users to do more than jump if the task fails.
This commit is contained in:
parent
737d3e4d08
commit
f4831b93b9
@ -1,14 +0,0 @@
|
|||||||
using e_suite.Workflow.Core.Attributes;
|
|
||||||
using System.ComponentModel.DataAnnotations;
|
|
||||||
|
|
||||||
namespace e_suite.Workflow.Core.Interfaces;
|
|
||||||
|
|
||||||
[TaskCapability]
|
|
||||||
public interface IFailedLoopback
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// ITask OnCompleteAsync returns false, the workflow processor will initiate a loopback to this item.
|
|
||||||
/// </summary>
|
|
||||||
[Required]
|
|
||||||
public Task Loopback { get; set; }
|
|
||||||
}
|
|
||||||
@ -1,12 +1,13 @@
|
|||||||
using e_suite.Workflow.Core.Attributes;
|
using e_suite.Workflow.Core.Attributes;
|
||||||
|
using e_suite.Workflow.Core.Enums;
|
||||||
using e_suite.Workflow.Core.Interfaces;
|
using e_suite.Workflow.Core.Interfaces;
|
||||||
|
|
||||||
namespace e_suite.Workflow.Core.Tasks;
|
namespace e_suite.Workflow.Core.Tasks;
|
||||||
|
|
||||||
[GeneralTask]
|
[GeneralTask]
|
||||||
public class AdhocApprovalTask : TaskBase, IAssignees<IApprovalTaskAssignee>, IFailedLoopback
|
public class AdhocApprovalTask : TaskBase, IAssignees<IApprovalTaskAssignee>, IOutcome<ApprovalVerdict>
|
||||||
{
|
{
|
||||||
public required Task Loopback { get; set; }
|
|
||||||
|
|
||||||
public IList<IApprovalTaskAssignee> Assignees { get; } = new List<IApprovalTaskAssignee>();
|
public IList<IApprovalTaskAssignee> Assignees { get; } = new List<IApprovalTaskAssignee>();
|
||||||
|
public ApprovalVerdict TaskOutcome { get; set; }
|
||||||
|
public Dictionary<ApprovalVerdict, Guid> OutcomeActions { get; set; }
|
||||||
}
|
}
|
||||||
@ -1,19 +1,13 @@
|
|||||||
using e_suite.Workflow.Core.Attributes;
|
using e_suite.Workflow.Core.Attributes;
|
||||||
|
using e_suite.Workflow.Core.Enums;
|
||||||
using e_suite.Workflow.Core.Interfaces;
|
using e_suite.Workflow.Core.Interfaces;
|
||||||
|
|
||||||
namespace e_suite.Workflow.Core.Tasks;
|
namespace e_suite.Workflow.Core.Tasks;
|
||||||
|
|
||||||
[GeneralTask]
|
[GeneralTask]
|
||||||
public class ApprovalTask : TaskBase, IStage<ApprovalTaskAttribute>, IFailedLoopback
|
public class ApprovalTask : TaskBase, IStage<ApprovalTaskAttribute>, IOutcome<ApprovalVerdict>
|
||||||
{
|
{
|
||||||
public required Task Loopback { get; set; }
|
|
||||||
|
|
||||||
public ICollection<ITask> Tasks { get; } = new List<ITask>();
|
public ICollection<ITask> Tasks { get; } = new List<ITask>();
|
||||||
|
public ApprovalVerdict TaskOutcome { get; set; }
|
||||||
//Todo can only be on a run-time instance
|
public Dictionary<ApprovalVerdict, Guid> OutcomeActions { get; set; }
|
||||||
//public override Task<bool> OnCompleteAsync()
|
|
||||||
//{
|
|
||||||
|
|
||||||
// return Task.FromResult(true);
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
@ -163,6 +163,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "e-suite.DependencyInjection
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "e-suite.Modules.WorkflowTemplatesManager", "e-suite.Modules.WorkflowTemplatesManager\e-suite.Modules.WorkflowTemplatesManager.csproj", "{ABF3CD19-D1CF-4407-9102-3FC31DAC04AB}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "e-suite.Modules.WorkflowTemplatesManager", "e-suite.Modules.WorkflowTemplatesManager\e-suite.Modules.WorkflowTemplatesManager.csproj", "{ABF3CD19-D1CF-4407-9102-3FC31DAC04AB}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eSuite.Translator", "eSuite.Translator\eSuite.Translator.csproj", "{2D02CADA-C004-4B0C-B6DE-097647CB6BA3}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
@ -457,6 +459,10 @@ Global
|
|||||||
{ABF3CD19-D1CF-4407-9102-3FC31DAC04AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{ABF3CD19-D1CF-4407-9102-3FC31DAC04AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{ABF3CD19-D1CF-4407-9102-3FC31DAC04AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{ABF3CD19-D1CF-4407-9102-3FC31DAC04AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{ABF3CD19-D1CF-4407-9102-3FC31DAC04AB}.Release|Any CPU.Build.0 = Release|Any CPU
|
{ABF3CD19-D1CF-4407-9102-3FC31DAC04AB}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{2D02CADA-C004-4B0C-B6DE-097647CB6BA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{2D02CADA-C004-4B0C-B6DE-097647CB6BA3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{2D02CADA-C004-4B0C-B6DE-097647CB6BA3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{2D02CADA-C004-4B0C-B6DE-097647CB6BA3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user