Exemplo n.º 1
0
 public IJob <TKey> Peek()
 {
     if (WorkQueue1.Count > 0)
     {
         return(WorkQueue1.Peek());
     }
     else if (WorkQueue2.Count > 0)
     {
         return(WorkQueue2.Peek());
     }
     return(null);
 }
Exemplo n.º 2
0
        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);
        }