示例#1
0
        public async Task <IActionResult> Index()
        {
            var schedulers = await TimerUtil.GetSchedulers().ConfigureAwait(false);

            List <JobDetailVM> jobs = new List <JobDetailVM>();

            foreach (var item in schedulers)
            {
                var partial = await item.GetCurrentlyExecutingJobs().ConfigureAwait(false);

                jobs.AddRange(partial.Select(o => new JobDetailVM(o)));
            }
            return(View(jobs.ToLookup(o => o.SchedulerName)));
        }
示例#2
0
        public async Task <IActionResult> Index()
        {
            var schedulers = await TimerUtil.GetSchedulers().ConfigureAwait(false);

            var matcher = new GroupMatcherVM().GetJobGroupMatcher();
            IDictionary <SchedulerVM, IEnumerable <JobDetailVM> > jobs = new Dictionary <SchedulerVM, IEnumerable <JobDetailVM> >();

            foreach (var item in schedulers)
            {
                var jobKeys = await item.GetJobKeys(matcher).ConfigureAwait(false);

                var jobDetails = jobKeys.Select(async o => await item.GetJobDetail(o).ConfigureAwait(false))
                                 .Select(o => new JobDetailVM(item, o.Result)).OrderBy(o => o.NextFireTimeUtc).ThenBy(o => o.JobGroup);
                jobs.Add(new SchedulerVM(item), jobDetails);
            }
            return(View(jobs));
        }
示例#3
0
        public async Task <IActionResult> Index()
        {
            var schedulers = await TimerUtil.GetSchedulers().ConfigureAwait(false);

            var matcher = new GroupMatcherVM().GetTriggerGroupMatcher();
            IDictionary <SchedulerVM, IEnumerable <TriggerDetailVM> > triggers = new Dictionary <SchedulerVM, IEnumerable <TriggerDetailVM> >();

            foreach (var item in schedulers)
            {
                var trgKeys = await item.GetTriggerKeys(matcher).ConfigureAwait(false);

                var trgDetailTasks = trgKeys.Select(async o => await item.GetTrigger(o).ConfigureAwait(false))
                                     .Select(o => o.Result)
                                     .Select(async o => TriggerDetailVM.Create(o, o.CalendarName != null ? await item.GetCalendar(o.CalendarName).ConfigureAwait(false) : null));
                var trgVMs = (await Task.WhenAll(trgDetailTasks))
                             .Select(o => { o.SchedulerName = item.SchedulerName; return(o); })
                             .OrderBy(o => o.NextFireTimes.FirstOrDefault())
                             .ThenBy(o => o.Group)
                             .ThenBy(o => o.Priority);
                triggers.Add(new SchedulerVM(item), trgVMs);
            }
            return(View(triggers));
        }