diff --git a/Yavsc.Abstract/Workflow/Tasks/IExecutionData.cs b/Yavsc.Abstract/Workflow/Tasks/IExecutionData.cs new file mode 100644 index 00000000..fbc72a52 --- /dev/null +++ b/Yavsc.Abstract/Workflow/Tasks/IExecutionData.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; +using System.Threading.Tasks; + + +namespace Yavsc.Abstract.Workflow +{ + public interface IExecutionData + { + Task Payload { get; } + + ITaskMetaData MetaData { get; } + + string [] Args { get; } + IList Faults { get; } + + } +} \ No newline at end of file diff --git a/Yavsc.Abstract/Workflow/Tasks/IMayBeFixable.cs b/Yavsc.Abstract/Workflow/Tasks/IMayBeFixable.cs new file mode 100644 index 00000000..c22d106c --- /dev/null +++ b/Yavsc.Abstract/Workflow/Tasks/IMayBeFixable.cs @@ -0,0 +1,9 @@ +namespace Yavsc.Abstract.Workflow +{ + public interface IMayBeFixable + { + bool Fixable { get; } + + void TryAndFix(); + } +} \ No newline at end of file diff --git a/Yavsc.Abstract/Workflow/IRequisition.cs b/Yavsc.Abstract/Workflow/Tasks/IRequisition.cs similarity index 59% rename from Yavsc.Abstract/Workflow/IRequisition.cs rename to Yavsc.Abstract/Workflow/Tasks/IRequisition.cs index ec0cd96f..12c92513 100644 --- a/Yavsc.Abstract/Workflow/IRequisition.cs +++ b/Yavsc.Abstract/Workflow/Tasks/IRequisition.cs @@ -1,4 +1,7 @@ +using System.Collections.Generic; +using Yavsc.Abstract.Workflow; + namespace Yavsc.Models { public interface IRequisition diff --git a/Yavsc.Abstract/Workflow/Tasks/ITaskMetaData.cs b/Yavsc.Abstract/Workflow/Tasks/ITaskMetaData.cs new file mode 100644 index 00000000..e2371641 --- /dev/null +++ b/Yavsc.Abstract/Workflow/Tasks/ITaskMetaData.cs @@ -0,0 +1,11 @@ +using System.Collections.Generic; +using Yavsc.Models; + +namespace Yavsc.Abstract.Workflow +{ + public interface ITaskMetaData + { + string TaskName { get; } + IEnumerable Prerequisites { get; } + } +} \ No newline at end of file diff --git a/Yavsc.Abstract/Workflow/ITaskRunner.cs b/Yavsc.Abstract/Workflow/Tasks/ITaskRunner.cs similarity index 60% rename from Yavsc.Abstract/Workflow/ITaskRunner.cs rename to Yavsc.Abstract/Workflow/Tasks/ITaskRunner.cs index a2b45580..c5f89930 100644 --- a/Yavsc.Abstract/Workflow/ITaskRunner.cs +++ b/Yavsc.Abstract/Workflow/Tasks/ITaskRunner.cs @@ -4,6 +4,6 @@ namespace Yavsc.Abstract.Workflow { public interface ITaskRunner { - Task Run(string [] args); + IExecutionData Run( ITaskMetaData taskMetaData, string [] args); } } \ No newline at end of file diff --git a/Yavsc.Abstract/Workflow/ITaskRunnerProvider.cs b/Yavsc.Abstract/Workflow/Tasks/ITaskRunnerProvider.cs similarity index 100% rename from Yavsc.Abstract/Workflow/ITaskRunnerProvider.cs rename to Yavsc.Abstract/Workflow/Tasks/ITaskRunnerProvider.cs diff --git a/Yavsc.Abstract/Workflow/TaskManager.cs b/Yavsc.Abstract/Workflow/Tasks/TaskManager.cs similarity index 100% rename from Yavsc.Abstract/Workflow/TaskManager.cs rename to Yavsc.Abstract/Workflow/Tasks/TaskManager.cs