public WorklistDto GetTaskByProcInstId(int procInstId) { try { using (var workflowClient = _client.GetWorkflowClient()) { K2.WorklistCriteria wlc = new K2.WorklistCriteria(); wlc.AddFilterField(K2.WCField.ProcessID, K2.WCCompare.Equal, procInstId); var results = workflowClient.OpenWorklist(wlc); if (results.TotalCount > 0) { var workListItem = results[0]; if (workListItem.Status == K2.WorklistStatus.Allocated) { IK2Server blackpearServer = new K2Server(); bool isDone = blackpearServer.ReleaseWorklistItem(workListItem.SerialNumber); if (isDone) { results = workflowClient.OpenWorklist(wlc); workListItem = results[0]; } } var workListItemDto = new WorklistDto() { Serial = workListItem.SerialNumber, AllocatedUser = workListItem.AllocatedUser, Data = workListItem.Data, Folio = workListItem.ProcessInstance.Folio, ActivityName = workListItem.ActivityInstanceDestination.Name, Status = ((K2.WorklistStatus)workListItem.Status).ToString() }; return(workListItemDto); } } return(null); } catch (Exception e) { throw new Exception(e.Message); } }
public List <WorklistDto> GetWorklist() { var tasks = new List <WorklistDto>(); var worklists = _client.OpenWorklist(); if (worklists.Count == 0) { return(tasks); } worklists.Each((worklistItem) => { var task = new WorklistDto() { ProcInstId = worklistItem.ProcessInstance.ID, Serial = worklistItem.SerialNumber, Originator = worklistItem.ProcessInstance.Name, Folio = worklistItem.ProcessInstance.Folio, WorkflowName = worklistItem.ProcessInstance.Name, ActivityName = worklistItem.ActivityInstanceDestination.Name, StartDate = worklistItem.ProcessInstance.StartDate, ActivityStartDate = worklistItem.ActivityInstanceDestination.StartDate, Priority = worklistItem.ProcessInstance.Priority, Status = worklistItem.Status.ToString(), AllocatedUser = worklistItem.AllocatedUser, OpenedBy = string.Empty, SharedUser = worklistItem.AllocatedUser ?? string.Empty, ManagedUser = _client.GetFQN(), IsShared = (worklistItem.AllocatedUser != null && worklistItem.AllocatedUser.Length > 0), Actions = worklistItem.Actions.Where(p => p.Batchable == true).ToList(), NoneK2Form = true }; tasks.Add(task); }); return(tasks); }
public List <WorklistDto> GetWorklist(IEnumerable <WorklistItemDto> items) { var worklists = new List <WorklistDto>(); WorklistDto view = new WorklistDto(); int processId = 0; int actInstId = 0; foreach (WorklistItemDto item in items) { if (_userAccount.Equals(item.Originator, StringComparison.OrdinalIgnoreCase) && !_userAccount.Equals(item.ActionerName, StringComparison.OrdinalIgnoreCase)) { continue; } if ((item.ProcessInstanceID != processId) || (item.ProcessInstanceID == processId && actInstId != item.ActInstDestID)) { actInstId = item.ActInstDestID; processId = item.ProcessInstanceID; view = new WorklistDto() { RequestorId = item.EmpNo, WorkflowName = item.Workflow, Requestor = item.EmpName, Folio = item.Folio, ActivityName = item.ActivityName, ViewFlow = item.ViewFLow, ViewFromUrl = item.ViewUrl, IsShared = !string.IsNullOrEmpty(item.SharedUser), NoneK2Form = item.NoneK2, Serial = item.SeriaNumber, SharedUser = item.SharedUser, ManagedUser = item.ManagedUser, OpenedBy = item.OpenedBy ?? string.Empty, Data = item.OpenUrl, Status = ((K2.WorklistStatus)item.Status).ToString(), ActivityStartDate = item.TaskStartDate, Actions = new ActionCollection(), AllocatedUser = item.ActionerName, Priority = Convert.ToInt16(item.Priority), Originator = item.Originator }; worklists.Add(view); } if (item.Status == (int)K2.WorklistStatus.Available || item.Status == (int)K2.WorklistStatus.Sleep || item.Status == (int)K2.WorklistStatus.Open) { if (item.Denied == true || item.Execute == false) { continue; } var actions = view.Actions as ActionCollection; var act = new Cores.Action(); act.Batchable = item.Batchable; act.Name = item.ActionName; actions.Add(act); } } return(worklists); }