Пример #1
0
        private void CompletedJobsCallback(InvokeOperation <IEnumerable <JobBase> > io)
        {
            List <JobBase> completedJobArray = new List <JobBase>();

            if (io.Value != null)
            {
                completedJobArray = new List <JobBase>(io.Value);
            }
            foreach (JobBase jobItem in completedJobArray)
            {
                if (jobItem.Code == monitoringJobCode)
                {
                    UpdateCurrentJob(jobItem);
                }
                else
                {
                }
                var jobFound = CompletedJobs.FirstOrDefault(x => x.Code == jobItem.Code);
                if (jobFound != null)
                {
                    //update job info
                    UpdateExistingJob(jobFound, jobItem);
                }
                else
                {
                    //insert job info
                    CompletedJobs.Add(CloneJob(jobItem));
                }
            }

            //Remove jobs from queue that don't exist in Array
            var c = from aItem in CompletedJobs
                    from bItem in completedJobArray.Where(bItem => aItem.Code == bItem.Code).DefaultIfEmpty()
                    where bItem == null
                    select aItem;

            CompletedJobs.RemoveAll(x => c.Contains(x));
        }
Пример #2
0
 /// <summary>
 /// Moves the provided <see cref="GeolocationBatchUpdateJob"/> from executing to completed
 /// </summary>
 /// <param name="job">The <see cref="GeolocationBatchUpdateJob"/> to move</param>
 private void MoveExecutingToCompleted(GeolocationBatchUpdateJob job)
 {
     ExecutingJobs.Remove(job);
     CompletedJobs.Add(job);
     Buffer.Remove(job.Id);
 }
        private KeyPerformanceIndicator(int franchiseId, Job[] jobs, JobTask[] tasks)
        {
            FranchiseId = franchiseId;
            Jobs        = jobs;
            Tasks       = tasks;

            InconsistentRecords = Jobs.Where(j => !Estimates.Any(e => e.Id == j.Id) && !CompletedJobs.Any(c => c.Id == j.Id) && !RecallJobs.Any(r => r.Id == j.Id)).ToArray();
        }
        internal KeyPerformanceIndicator(int franchiseId, vRpt_Job[] jobs, vRpt_JobDetail[] tasks)
        {
            FranchiseId = franchiseId;
            Jobs        = jobs.Select(Job.MapFromModel).ToArray();
            Tasks       = tasks.Select(JobTask.MapFromModel).ToArray();

            InconsistentRecords = Jobs.Where(j => !Estimates.Any(e => e.Id == j.Id) && !CompletedJobs.Any(c => c.Id == j.Id) && !RecallJobs.Any(r => r.Id == j.Id)).ToArray();
        }