public IJob <TKey> Peek() { if (WorkQueue1.Count > 0) { return(WorkQueue1.Peek()); } else if (WorkQueue2.Count > 0) { return(WorkQueue2.Peek()); } return(null); }
public async Task <List <WorkQueueItem> > LoadWorkQueueAsync(string sessionId) { // Fetch the workqueue // Create an activity service and filter var actService = new KTA_ActivityServices.ActivityServiceClient(); var actFilter = new JobActivityFilter3(); actFilter.MaxActivitiesCount = 1000; actFilter.UseCombinedWorkQueue = true; //i.e. return individual and group assigned activities WorkQueue2 activities = await actService.GetWorkQueue2Async(sessionId, actFilter); // Get the activity summary collection i.e. we are just getting activity information for display in the workqueue var jobActSumCol = activities.JobActivitySummary2Collection; // test if no items in workqueue??? var wqItems = new List <WorkQueueItem>(); foreach (var item in jobActSumCol) { var wqItem = new WorkQueueItem(); wqItem.JobSLA = item.JobSlaStatus.ImagePath; wqItem.ProcessName = item.Process.Name; wqItem.ActivitySLA = item.ActivitySlaStatus.ImagePath; wqItem.ActivityName = item.ActivityIdentity.ActivityName; wqItem.DueDate = item.DueDateTime; wqItem.AssignedTo = item.Resource.Name; wqItem.EmployeeName = (string)item.Fields[1].Value; wqItem.REF_ID = (string)item.Fields[0].Value; wqItem.JobId = item.ActivityIdentity.JobId; wqItem.NodeId = item.ActivityIdentity.NodeId; wqItem.EPC = item.ActivityIdentity.EmbeddedProcessCount; wqItem.AssociatedFile = item.AssociatedFile; wqItems.Add(wqItem); } wqItems.Reverse(); await actService.CloseAsync(); return(wqItems); }