private void DeleteJob(JobNode selectedNode, Action updateAction) { var bRet = mScheduler.DeleteJob(selectedNode.Detail.Key); Debug.Assert(bRet); updateAction(); }
private void UpdateDetails(JobNode jobNode) { var ctrl = new NativeJobDetailDisplay(jobNode.Detail) { Dock = DockStyle.Fill }; pnlDetails.Controls.Clear(); pnlDetails.Controls.Add(ctrl); }
private void LoadTriggerNodes(JobNode jobNode) { var triggers = mScheduler.GetTriggersOfJob(new JobKey(jobNode.Detail.Key.Name, jobNode.Parent.Text)); foreach (var trigger in triggers) { var node = new TriggerNode(trigger); jobNode.Nodes.Add(node); LoadCalendarNode(node); } }
private void AddTrigger(JobNode selectedNode, Action updateAction) { var frm = new CronSelector(); if (frm.ShowDialog() != DialogResult.OK) { return; } // add cron trigger AddTrigger(selectedNode, frm.Expression, frm.GetXml(), null, NullUpdateAction); updateAction(); }
private void AddTrigger(JobNode selectedNode, string cronStr, string triggerXML, string calendarName, Action updateAction) { var cronDescrip = ExpressionDescriptor.GetDescription(cronStr); var newCronXml = triggerXML; var trigger = TriggerBuilder.Create(). WithCronSchedule(cronStr). WithDescription(cronDescrip). ModifiedByCalendar(calendarName). UsingJobData(TriggerXml, newCronXml). ForJob(selectedNode.Detail). Build(); mScheduler.ScheduleJob(trigger); updateAction(); }
private void LoadJobNodes(JobGroupNode node) { var group = node.Name; var groupMatcher = GroupMatcher <JobKey> .GroupContains(group); var jobKeys = mScheduler.GetJobKeys(groupMatcher); foreach (var jobKey in jobKeys) { try { var detail = mScheduler.GetJobDetail(jobKey); var jobNode = new JobNode(detail); node.Nodes.Add(jobNode); LoadTriggerNodes(jobNode); } catch (Exception ex) { node.Nodes.Add(string.Format("Unknown Job Type ({0})", jobKey.Name)); //TODO: Do something useful with this exception. Most likely cause is the client does not have a copy of a given dll and can't load the type. Log.Error("Error loading jobs.", ex); } } }