diff --git a/src/apps/Caspian.WorkflowFramework/Models/WorkflowModel.cs b/src/apps/Caspian.WorkflowFramework/Models/WorkflowModel.cs index 3a73cf2..4e3bea6 100644 --- a/src/apps/Caspian.WorkflowFramework/Models/WorkflowModel.cs +++ b/src/apps/Caspian.WorkflowFramework/Models/WorkflowModel.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using System.Text.Json; using System.Threading.Tasks; +using Caspian.WorkflowFramework.Utility; using JetBrains.Annotations; namespace Caspian.WorkflowFramework.Models; @@ -81,4 +82,9 @@ public class WorkflowModel /// جای ذخیره‌ی موقت برای استفاده های بعدی /// public JsonElement? WorkflowStash { get; set; } + + /// + /// مرحله + /// + public WorkflowPhase WorkflowPhase { get; set; } } diff --git a/src/apps/Caspian.WorkflowFramework/Utility/ConversionExtensions.cs b/src/apps/Caspian.WorkflowFramework/Utility/ConversionExtensions.cs index a85ed5c..ee0d3fa 100644 --- a/src/apps/Caspian.WorkflowFramework/Utility/ConversionExtensions.cs +++ b/src/apps/Caspian.WorkflowFramework/Utility/ConversionExtensions.cs @@ -152,6 +152,13 @@ namespace Caspian.WorkflowFramework.Utility workflowModel.WorkflowStash = null; } + workflowModel.WorkflowPhase = + dictionary.TryGetValue(nameof(workflowModel.WorkflowPhase), out var phaseObj) && + phaseObj != null && + Enum.TryParse(typeof(WorkflowPhase), phaseObj.ToString(), out var phase) + ? (WorkflowPhase)phase + : WorkflowPhase.Client; + return workflowModel; } } diff --git a/src/apps/Caspian.WorkflowFramework/Utility/WorkflowPhase.cs b/src/apps/Caspian.WorkflowFramework/Utility/WorkflowPhase.cs new file mode 100644 index 0000000..e493d68 --- /dev/null +++ b/src/apps/Caspian.WorkflowFramework/Utility/WorkflowPhase.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Caspian.WorkflowFramework.Utility; +public enum WorkflowPhase : short +{ + Client = 0, + Admin +}