public void Can_Get_Task_By_id() { IContent root = Scaffold.Node(_contentService); Guid guid = Guid.NewGuid(); _instancesService.InsertInstance(Scaffold.Instance(guid, 1, root.Id)); _service.InsertTask(Scaffold.Task(guid)); List <WorkflowTaskViewModel> tasks = _service.GetPendingTasks(new List <int> { (int)TaskStatus.PendingApproval }, 10, 1); int id = tasks.First().TaskId; WorkflowTaskViewModel taskViewModel = _service.GetTask(id); Assert.NotNull(taskViewModel); Assert.Equal(id, taskViewModel.TaskId); }
/// <summary> /// Converts a list of workflowTaskInstances into a list of UI-ready workflowTasks /// </summary> /// <param name="taskInstances"></param> /// <param name="sorted">Depending on the caller, the response may not be sorted</param> /// <param name="instance"></param> /// <returns></returns> public List <WorkflowTaskViewModel> ConvertToWorkflowTaskList(List <WorkflowTaskPoco> taskInstances, bool sorted = true, WorkflowInstancePoco instance = null) { List <WorkflowTaskViewModel> workflowItems = new List <WorkflowTaskViewModel>(); if (!taskInstances.Any()) { return(workflowItems); } bool useInstanceFromTask = instance == null; foreach (WorkflowTaskPoco taskInstance in taskInstances) { instance = useInstanceFromTask ? taskInstance.WorkflowInstance : instance; // ignore workflows where node has been deleted if (instance.Node == null || instance.Node.Path.Contains(Constants.System.RecycleBinContentString)) { continue; } // if the instance has been rejected/resubmitted, get the most recent comment from that stage if (instance.WorkflowStatus.In(WorkflowStatus.Rejected, WorkflowStatus.Resubmitted)) { } var item = new WorkflowTaskViewModel { InstanceGuid = instance.Guid, TaskId = taskInstance.Id, Type = instance.WorkflowType.Description(instance.ScheduledDate), TypeId = instance.Type, CurrentStep = taskInstance.ApprovalStep, Status = taskInstance.Status, StatusName = taskInstance.StatusName, CssStatus = taskInstance.StatusName.ToLower().Replace(' ', '-'), InstanceStatus = instance.WorkflowStatus.ToString().ToLower(), NodeId = instance.NodeId, NodeName = instance.Node.Name, RequestedById = instance.AuthorUserId, RequestedBy = instance.AuthorUser?.Name, RequestedOn = taskInstance.CreatedDate.ToFriendlyDate(), Comment = taskInstance.Comment, InstanceComment = instance.AuthorComment, ApprovalGroupId = taskInstance.UserGroup?.GroupId, ApprovalGroup = taskInstance.UserGroup?.Name, CompletedBy = taskInstance.ActionedByUser?.Name, CompletedOn = taskInstance.CompletedDate?.ToFriendlyDate(), ActionedByAdmin = taskInstance.ActionedByAdmin, Permissions = _configService.GetRecursivePermissionsForNode(instance.Node) }; workflowItems.Add(item); } return(sorted ? workflowItems.OrderByDescending(x => x.CurrentStep).ToList() : workflowItems.ToList()); }