Beispiel #1
0
        private void DeleteJob(JobNode selectedNode, Action updateAction)
        {
            var bRet = mScheduler.DeleteJob(selectedNode.Detail.Key);

            Debug.Assert(bRet);
            updateAction();
        }
Beispiel #2
0
        private void UpdateDetails(JobNode jobNode)
        {
            var ctrl = new NativeJobDetailDisplay(jobNode.Detail)
            {
                Dock = DockStyle.Fill
            };

            pnlDetails.Controls.Clear();
            pnlDetails.Controls.Add(ctrl);
        }
Beispiel #3
0
        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);
            }
        }
Beispiel #4
0
        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();
        }
Beispiel #5
0
        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();
        }
Beispiel #6
0
        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);
                }
            }
        }