public void Dev2IdleTrigger_Construct_Test() { var idleTrigger = new IdleTrigger(); Dev2IdleTrigger wrappedIdle = new Dev2IdleTrigger(_taskServiceConvertorFactory.Object, idleTrigger); Assert.AreEqual(idleTrigger, wrappedIdle.Instance); }
void UpdateTrigger(IScheduledResource task, Table table) { var sched = table.Rows[0]["ScheduleType"]; Microsoft.Win32.TaskScheduler.Trigger x; switch (sched) { case "At log on": x = new LogonTrigger(); break; case "On a schedule": x = CreateScheduleTrigger(table); break; case "At Startup": x = new BootTrigger(); break; case "On Idle": x = new IdleTrigger(); break; default: x = new DailyTrigger(); break; } task.Trigger.Trigger = new Dev2Trigger(new TaskServiceConvertorFactory(), x); }
public void TaskServiceConvertorFactory_SanitiseIdle_Test() { var fact = new TaskServiceConvertorFactory(); Trigger trig = new IdleTrigger(); var wrapped = new Dev2Trigger(fact, trig); var sanitised = fact.SanitiseTrigger(wrapped); AssertEqual(trig, sanitised); }
/// <summary> /// Creates a new task, registers the task, and returns the instance. /// </summary> /// <param name="path">The task name. If this value is NULL, the task will be registered in the root task folder and the task name will be a GUID value that is created by the Task Scheduler service. A task name cannot begin or end with a space character. The '.' character cannot be used to specify the current task folder and the '..' characters cannot be used to specify the parent task folder in the path.</param> /// <param name="trigger">The <see cref="Trigger" /> to determine when to run the task.</param> /// <param name="exePath">The executable path.</param> /// <param name="arguments">The arguments (optional). Value can be NULL.</param> /// <param name="userId">The user credentials used to register the task.</param> /// <param name="password">The password for the userId used to register the task.</param> /// <param name="logonType">A <see cref="TaskLogonType" /> value that defines what logon technique is used to run the registered task.</param> /// <param name="description">The task description.</param> /// <returns> /// A <see cref="Task" /> instance of the registered task. /// </returns> public Task AddTask([NotNull] string path, QuickTriggerType trigger, [NotNull] string exePath, string arguments = null, string userId = null, string password = null, TaskLogonType logonType = TaskLogonType.InteractiveToken, string description = null) { // Create a trigger based on quick trigger Trigger newTrigger; switch (trigger) { case QuickTriggerType.Boot: newTrigger = new BootTrigger(); break; case QuickTriggerType.Idle: newTrigger = new IdleTrigger(); break; case QuickTriggerType.Logon: newTrigger = new LogonTrigger(); break; case QuickTriggerType.TaskRegistration: newTrigger = new RegistrationTrigger(); break; case QuickTriggerType.Hourly: newTrigger = new DailyTrigger { Repetition = new RepetitionPattern(TimeSpan.FromHours(1), TimeSpan.FromDays(1)) }; break; case QuickTriggerType.Daily: newTrigger = new DailyTrigger(); break; case QuickTriggerType.Weekly: newTrigger = new WeeklyTrigger(); break; case QuickTriggerType.Monthly: newTrigger = new MonthlyTrigger(); break; default: throw new ArgumentOutOfRangeException(nameof(trigger), trigger, null); } return(AddTask(path, newTrigger, new ExecAction(exePath, arguments), userId, password, logonType, description)); }
private void triggerTypeCombo_SelectedValueChanged(object sender, EventArgs e) { if (triggerTypeCombo.SelectedValue == null) { return; } Trigger newTrigger = null; switch (TriggerView) { case TaskTriggerDisplayType.Schedule: default: settingsTabControl.SelectedTab = scheduleTab; if (!onAssignment) { newTrigger = new TimeTrigger(); } break; case TaskTriggerDisplayType.Logon: logonRemotePanel.Visible = false; settingsTabControl.SelectedTab = logonTab; if (!onAssignment) { newTrigger = new LogonTrigger(); } break; case TaskTriggerDisplayType.Boot: settingsTabControl.SelectedTab = startupTab; if (!onAssignment) { newTrigger = new BootTrigger(); } break; case TaskTriggerDisplayType.Idle: settingsTabControl.SelectedTab = idleTab; if (!onAssignment) { newTrigger = new IdleTrigger(); } break; case TaskTriggerDisplayType.Event: settingsTabControl.SelectedTab = onEventTab; if (!onAssignment) { newTrigger = new EventTrigger(); } break; case TaskTriggerDisplayType.Registration: settingsTabControl.SelectedTab = startupTab; if (!onAssignment) { newTrigger = new RegistrationTrigger(); } break; case TaskTriggerDisplayType.SessionConnect: case TaskTriggerDisplayType.SessionDisconnect: case TaskTriggerDisplayType.WorkstationLock: case TaskTriggerDisplayType.WorkstationUnlock: logonRemotePanel.Visible = (int)TriggerView < (int)TaskTriggerDisplayType.WorkstationLock; settingsTabControl.SelectedTab = logonTab; if (!onAssignment) { newTrigger = new SessionStateChangeTrigger() { StateChange = (TaskSessionStateChangeType)(TriggerView - 110) } } ; break; case TaskTriggerDisplayType.Custom: settingsTabControl.SelectedTab = customTab; triggerTypeCombo.Enabled = okBtn.Enabled = false; break; } if (newTrigger != null && !onAssignment) { if (trigger != null) { newTrigger.CopyProperties(trigger); } if (newTrigger is ICalendarTrigger) { if (newTrigger.StartBoundary == DateTime.MinValue) { newTrigger.StartBoundary = DateTime.Now; } } else { newTrigger.StartBoundary = initialStartBoundary; } Trigger = newTrigger; } }
public Dev2IdleTrigger(ITaskServiceConvertorFactory taskServiceConvertorFactory, IdleTrigger instance) : base(taskServiceConvertorFactory, instance) { }
new protected void Start() { base.Start(); idle = GetComponentInParent <IdleTrigger>(); }