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))); }
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)); }
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)); }