50 lines
1.7 KiB
C#
50 lines
1.7 KiB
C#
using e_suite.Workflow.Core.Attributes;
|
|
|
|
namespace e_suite.Workflow.Core.Interfaces;
|
|
|
|
[TaskCapability]
|
|
public interface ITask
|
|
{
|
|
/// <summary>
|
|
/// The guid identifying this task.
|
|
/// </summary>
|
|
Guid Guid { get; set; }
|
|
|
|
/// <summary>
|
|
/// ID of the parent of this task. It could be either a Task or a Workflow.
|
|
/// </summary>
|
|
ITask Parent { get; set; }
|
|
|
|
/// <summary>
|
|
/// Name of the task as seen by users, must be unique in the workflow.
|
|
/// </summary>
|
|
string Name { get; set; }
|
|
|
|
/// <summary>
|
|
/// Description of the task
|
|
/// </summary>
|
|
string Description { get; set; }
|
|
|
|
/// <summary>
|
|
/// List of tasks that need to be completed before this on can start. (If empty, will start when the workflow starts)
|
|
/// </summary>
|
|
List<ITask> Predecessors { get; set; }
|
|
|
|
//Todo can only be on a run-time instance
|
|
///// <summary>
|
|
///// Called when the task status has been progressed from Pending to Active.
|
|
/////
|
|
///// Note: You can use this method to set the TaskStatus to ReadyToComplete if there is no manual processing needed for this task.
|
|
///// After this method is completed, the TaskStatus must be either Active or ReadyToComplete.
|
|
///// </summary>
|
|
///// <returns></returns>
|
|
//Task OnActivateAsync();
|
|
|
|
///// <summary>
|
|
///// Called when the task status has been progressed from ReadyToComplete to Completed
|
|
///// </summary>
|
|
///// <returns>True when the task completes successfully, false when it is considered failed.</returns>
|
|
//Task<bool> OnCompleteAsync();
|
|
|
|
//Todo add support for events (soap, rest, sftp, e-mail)
|
|
} |