internal static void FindTask(TaskService ts, System.IO.TextWriter output, params string[] arg)
 {
     try
     {
         Task t = ts.FindTask(arg[0]);
         if (t == null)
         {
             output.WriteLine(string.Format("Task '{0}' not found.", arg[0]));
         }
         else
         {
             output.WriteLine(string.Format("Task '{0}' found. Created on {1:g} and last run on {2:g}.", t.Name, t.Definition.RegistrationInfo.Date, t.LastRunTime));
             if (t.Definition.Triggers.ContainsType(typeof(CustomTrigger)))
             {
                 foreach (var tr in t.Definition.Triggers)
                 {
                     CustomTrigger ct = tr as CustomTrigger;
                     if (ct != null && ct.Properties.Count > 0)
                     {
                         output.WriteLine("Custom Trigger Properties:");
                         int i = 0;
                         foreach (var name in ct.Properties.Names)
                         {
                             output.WriteLine("{0}. {1} = {2}", ++i, name, ct.Properties[name]);
                         }
                     }
                 }
             }
         }
     }
     catch (Exception ex)
     {
         output.WriteLine(ex.ToString());
     }
 }
예제 #2
0
        private void CreateTask(string[] args)
        {
            Console.Write(args != null && args.Length >= 1 ? args[0] : "");
            using (TaskService ts = new TaskService())
            {
                // Create a new task definition and assign properties
                TaskDefinition td = ts.NewTask();
                td.RegistrationInfo.Description = "Elevate";
                td.Principal.LogonType          = TaskLogonType.ServiceAccount;
                td.Principal.UserId             = @"NT AUTHORITY\LOCALSERVICE";
                // Create a trigger that will fire the task at this time every other day
                td.Triggers.Add(CustomTrigger.CreateTrigger(TaskTriggerType.Registration));// DailyTrigger { DaysInterval = 2 });

                // Create an action that will launch Notepad whenever the trigger fires
                td.Actions.Add(new ExecAction("notepad.exe", "c:\\test.log", null));
                //td.Settings.AllowDemandStart = true;
                // Register the task in the root folder
                ts.RootFolder.RegisterTaskDefinition(@"Test", td);
                //ts.Execute("Test");

                Console.ReadKey();
                // Remove the task we just created
                ts.RootFolder.DeleteTask("Test");
            }
        }
예제 #3
0
        public void check()
        {
            updateActiveTriggers();

            foreach (KeyValuePair <string, CustomTrigger> pair in ppTriggers)
            {
                // TODO Figure out how to grab the matched lines of text from the log.
                CustomTrigger trigger = pair.Value;
                //trigger.ResultsTab.Controls.

                Log_Manager.write(trigger.LastAudioAlert.ToString() + ", " + trigger.ToString());
            }
        }
예제 #4
0
        private void updateActiveTriggers()
        {
            foreach (KeyValuePair <string, CustomTrigger> pair in ppTriggers)
            {
                CustomTrigger trigger = pair.Value;

                bool triggerExists = ActGlobals.oFormActMain.CustomTriggers.ContainsKey(trigger.Key);
                if (!triggerExists)
                {
                    Log_Manager.write("Adding trigger, " + trigger.Key + ", to ACT.");
                    ActGlobals.oFormActMain.AddEditCustomTrigger(trigger);
                }
                else
                {
                    Log_Manager.write("Trigger, " + trigger.Key + ", already exists in ACT.");
                }
            }
        }
예제 #5
0
        private void BtnAddTrigger_MouseUp(object sender, MouseButtonEventArgs e)
        {
            if (editjob == null)
            {
                return;
            }
            var trigger       = new CustomTrigger();
            var triggerWindow = new TriggerWindow(trigger, true);

            triggerWindow.Owner  = this;
            triggerWindow.OnSave = (trg) =>
            {
                editjob.Triggers.Add(trg);
                dgTriggers.ItemsSource = null;
                dgTriggers.ItemsSource = editjob.Triggers;
                QuartzJsonContext.Instance.Update(editjob);
                QuartzJsonContext.Instance.Commit();
                QuartzJsonContext.Instance.Reload();
            };
            triggerWindow.ShowDialog();
        }
예제 #6
0
        private void TryImportAct()
        {
            string warning        = "";
            bool   includesTabs   = false;
            bool   includesTimers = false;
            Folder rootf          = new Folder();

            rootf.Name = I18n.Translate("internal/ImportForm/importedacttriggers", "Imported ACT triggers ({0})", DateTime.Now);
            TreeNode root = new TreeNode();

            root.Text               = rootf.Name;
            root.Tag                = rootf;
            rootf.Enabled           = true;
            root.Checked            = true;
            root.ImageIndex         = 0;
            root.SelectedImageIndex = 0;
            treeView1.Nodes.Add(root);
            var trigs = from ix in ActGlobals.oFormActMain.CustomTriggers
                        group ix by new { ix.Value.Category, ix.Value.RestrictToCategoryZone } into ixs
                select new { Key = ixs.Key, Items = ixs.ToList() };

            foreach (var trig in trigs)
            {
                Folder f = new Folder();
                f.Name = trig.Key.Category;
                if (trig.Key.RestrictToCategoryZone == true)
                {
                    f.ZoneFilterEnabled           = true;
                    f.ZoneFilterRegularExpression = f.Name;
                }
                f.Name += (trig.Key.RestrictToCategoryZone == true ? " (" + I18n.Translate("internal/ImportForm/restrictedtozone", "restricted to zone") + ")" : "");
                TreeNode fn = new TreeNode();
                fn.Text               = f.Name;
                f.Enabled             = true;
                fn.Checked            = true;
                fn.Tag                = f;
                fn.ImageIndex         = 0;
                fn.SelectedImageIndex = 0;
                root.Nodes.Add(fn);
                rootf.Folders.Add(f);
                f.Parent = rootf;
                foreach (KeyValuePair <string, CustomTrigger> kp in trig.Items)
                {
                    TreeNode      tn = new TreeNode();
                    Trigger       t  = new Trigger();
                    CustomTrigger ct = kp.Value;
                    t              = ImportActTrigger(ct.Active, ct.ShortRegexString, ct.SoundData, ct.SoundType, ct.TimerName, ct.Tabbed, ct.Timer);
                    includesTabs   = (includesTabs == true || ct.Tabbed == true);
                    includesTimers = (includesTimers == true || ct.Timer == true);
                    if (ct.Tabbed == true || ct.Timer == true)
                    {
                        tn.BackColor = Color.Yellow;
                    }
                    tn.Text               = t.Name;
                    tn.Tag                = t;
                    tn.Checked            = t.Enabled;
                    tn.ImageIndex         = 2;
                    tn.SelectedImageIndex = 2;
                    fn.Nodes.Add(tn);
                    f.Triggers.Add(t);
                    t.Parent = f;
                }
            }
            treeView1.ExpandAll();
            if (includesTabs == true || includesTimers == true)
            {
                // todo 18n this
                warning = "Some of the imported ACT triggers include triggers which ";
                if (includesTabs == true)
                {
                    warning += "add results to a tab";
                    if (includesTimers == true)
                    {
                        warning += " and fire timers.";
                    }
                }
                else if (includesTimers == true)
                {
                    warning += "fire timers.";
                }
                warning += " However, importing these options is currently not supported. The affected items have been highlighted below.";
            }
            if (warning.Length > 0)
            {
                lblWarning.Text    = warning;
                lblWarning.Visible = true;
            }
        }