using Neo.Afx.Services.Workflows; using Neo.Afx.Services.Workflows.Entities; using System.Collections.Generic; using System.Linq; namespace Neo.LegitimateLicences.Common { public class WorkflowHelper { public static Vw_WorkflowInstance GetWorkflowInstanceView(long entityID, long itemID, long userID) { var wi = new WorkflowsDatabase().GetWorkflowInstanceView(entityID, itemID); return wi ?? new Vw_WorkflowInstance() { WorkflowInstanceID = -1 }; } public static List GetEscalateToUsers(long workflowInstanceTaskID, bool includeUserSettings) { return new WorkflowsDatabase().GetWorkflowInstanceTaskEscalationUsers(workflowInstanceTaskID, includeUserSettings); } public static Vw_WorkflowInstanceTask GetActiveUserTask(long userID, EntityEnum entity, long itemID) { return GetActiveUserTask(userID, (int)entity, itemID); } public static Vw_WorkflowInstanceTask GetActiveUserUserTaskByID(long entityID, long itemID, long taskID, long userID) { var tasks = new WorkflowsDatabase().GetTasks(entityID, itemID); return tasks.FirstOrDefault(a => a.WorkflowInstanceTaskID == taskID && a.AssignedToID == userID && a.WorkflowInstanceTaskStatusID == 1); //1=Outstanding } public static Vw_WorkflowInstanceTask GetActiveUserTask(long userID, long entityID, long itemID) { var tasks = new WorkflowsDatabase().GetTasks(entityID, itemID); return GetActiveUserTask(userID, tasks); } public static Vw_WorkflowInstanceTask GetActiveUserTask(long userID, List tasks) { var task = tasks.FirstOrDefault(a => a.AssignedToID == userID && a.WorkflowInstanceTaskStatusID == 1); //1=Outstanding #region Do Workflow Buddy Check if (task == null) { var activeTask = tasks.FirstOrDefault(a => a.WorkflowInstanceTaskStatusID == 1); if (activeTask != null) { var wd = new WorkflowsDatabase(); var assignedToID = activeTask.AssignedToID; if (wd.IsWorkflowBuddy(activeTask.WorkflowID, assignedToID, userID)) { task = activeTask; } } } #endregion return task; } public static Vw_WorkflowInstanceTask GetActiveTask(long entityID, long itemID) { var tasks = new WorkflowsDatabase().GetTasks(entityID, itemID); return tasks.FirstOrDefault(a => a.WorkflowInstanceTaskStatusID == 1); //1=Outstanding } } }