public override void Execute(HttpContextBase context)
        {
            var triggerGroups = scheduler.TriggerGroupNames
                .Select(t => new GroupWithStatus(t, scheduler.IsTriggerGroupPaused(t)))
                .ToArray();
            var jobGroups = scheduler.JobGroupNames
                .Select(j => new GroupWithStatus(j, scheduler.IsJobGroupPaused(j)))
                .ToArray();
            var calendars = scheduler.CalendarNames
                .Select(name => Helpers.KV(name, scheduler.GetCalendar(name).Description))
                .ToArray();

            var jobListeners = scheduler.GlobalJobListeners
                .Cast<IJobListener>()
                .Select(j => Helpers.KV(j.Name, j.GetType()))
                .ToArray();

            var triggerListeners = scheduler.GlobalTriggerListeners
                .Cast<ITriggerListener>()
                .Select(j => Helpers.KV(j.Name, j.GetType()))
                .ToArray();

            var view = Views.Views.IndexPage(scheduler, scheduler.GetMetaData(), triggerGroups, jobGroups, calendars, jobListeners, triggerListeners);
            context.XDocument(Helpers.XHTML(view));
        }
 public override void Execute(HttpContextBase context)
 {
     var group = context.Request.QueryString["group"];
     var job = context.Request.QueryString["job"];
     var thisUrl = context.Request.RawUrl;
     var triggers = scheduler.GetTriggersOfJob(job, group)
         .Select(t => {
             var state = scheduler.GetTriggerState(t.Name, t.Group);
             return new TriggerWithState(t, state);
         });
     var highlight = context.Request.QueryString["highlight"];
     var m = new TriggersByJobModel(triggers, thisUrl, group, job, highlight);
     context.XDocument(Helpers.XHTML(Views.Views.TriggersByJob(m)));
 }
 public override void Execute(HttpContextBase context)
 {
     var group = context.Request.QueryString["group"];
     var triggerNames = scheduler.GetTriggerNames(group);
     var triggers = triggerNames
         .Select(t => {
             var trigger = scheduler.GetTrigger(t, group);
             var state = scheduler.GetTriggerState(t, group);
             return new TriggerWithState(trigger, state);
         });
     var thisUrl = context.Request.RawUrl;
     var paused = scheduler.IsTriggerGroupPaused(group);
     var highlight = context.Request.QueryString["highlight"];
     var v = Views.Views.TriggerGroup(group, paused, thisUrl, highlight, triggers);
     context.XDocument(Helpers.XHTML(v));
 }
 public override void Execute(HttpContextBase context)
 {
     var qs = context.Request.QueryString;
     var thisUrl = context.Request.Url.ToString().Split('?')[0];
     var pageSize = GetPageSize(qs);
     var pagination = new PaginationInfo {
         FirstItemIndex = GetStartIndex(qs),
         PageSize = pageSize,
         TotalItemCount = logsQ.Count(),
         PageUrl = "log.ashx?start=!0&max=" + pageSize,
     };
     var logs = logsQ.Skip(pagination.FirstItemIndex).Take(pagination.PageSize).ToList();
     var v = GetView(qs.AllKeys);
     var view = v.Value(logs, pagination, thisUrl);
     context.XDocument(view, contentType: v.Key);
 }
 public override void Execute(HttpContextBase context)
 {
     var group = context.Request.QueryString["group"];
     var jobNames = scheduler.GetJobNames(group);
     var runningJobs = scheduler.GetCurrentlyExecutingJobs().Cast<JobExecutionContext>();
     var jobs = jobNames.Select(j => {
         var job = scheduler.GetJobDetail(j, group);
         var interruptible = typeof (IInterruptableJob).IsAssignableFrom(job.JobType);
         var jobContext = runningJobs.FirstOrDefault(r => r.JobDetail.FullName == job.FullName);
         return new JobWithContext(job, jobContext, interruptible);
     });
     var paused = scheduler.IsJobGroupPaused(group);
     var thisUrl = context.Request.RawUrl;
     var highlight = context.Request.QueryString["highlight"];
     var view = Views.Views.JobGroup(group, paused, highlight, thisUrl, jobs);
     context.XDocument(Helpers.XHTML(view));
 }