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.Enums;
|
||||
using e_suite.Workflow.Core.Interfaces;
|
||||
|
||||
namespace e_suite.Workflow.Core.Tasks;
|
||||
|
||||
[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 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.Enums;
|
||||
using e_suite.Workflow.Core.Interfaces;
|
||||
|
||||
namespace e_suite.Workflow.Core.Tasks;
|
||||
|
||||
[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>();
|
||||
|
||||
//Todo can only be on a run-time instance
|
||||
//public override Task<bool> OnCompleteAsync()
|
||||
//{
|
||||
|
||||
// return Task.FromResult(true);
|
||||
//}
|
||||
public ApprovalVerdict TaskOutcome { get; set; }
|
||||
public Dictionary<ApprovalVerdict, Guid> OutcomeActions { get; set; }
|
||||
}
|
||||
@ -163,6 +163,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "e-suite.DependencyInjection
|
||||
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}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eSuite.Translator", "eSuite.Translator\eSuite.Translator.csproj", "{2D02CADA-C004-4B0C-B6DE-097647CB6BA3}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
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}.Release|Any CPU.ActiveCfg = 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
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
Loading…
Reference in New Issue
Block a user