private bool recordJob()//JobEditor frmJob) { //record configuration _job.Config.TaskPassword = txtPassword.Text; _job.Config.TaskUser = txtUser.Text; try { //add task to windows scheduler using (TaskService mgr = new TaskService()) { if (!mgr.RootFolder.SubFolders.Exists("Duplicate File")) { mgr.RootFolder.CreateFolder("Duplicate File"); } TaskDefinition td = mgr.NewTask(); td.RegistrationInfo.Description = "Duplicate file job"; Trigger trigger; if (chkPeriodicaly.Checked) { trigger = SchedulerTrigger.getTrigger(cmbFrequency.SelectedIndex); trigger.StartBoundary = dtpHour.Value; } else { trigger = SchedulerTrigger.getTrigger((int)SchedulerTrigger.TriggerTypes.OneTime); trigger.StartBoundary = dtpOneTime.Value; } td.Triggers.Add(trigger); var action = new ExecAction() { Path = "duplicateFile.exe", WorkingDirectory = Config.DefaultPath, Arguments = _job.Id.ToString() }; td.Actions.Add(action); var task = mgr.RootFolder.RegisterTaskDefinition("\\Duplicate File\\" + _job.Id, td, TaskCreation.CreateOrUpdate, _job.Config.TaskUser, _job.Config.TaskPassword, TaskLogonType.Password); } } catch (Exception ex) { MessageBox.Show(Resources.Languages.Resources.Error_Creation_tache, Resources.Languages.Resources.Erreur, MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } _job.Config.Save(Config.DefaultJobPath + _job.Id + ".conf"); return(true); }
private void btnEdit_Click(object sender, EventArgs e) { if (lstJob.SelectedIndex == -1) { return; } var jobName = lstJob.SelectedItem.ToString(); var config = Config.Load(Config.DefaultJobPath + "\\" + jobName + ".conf"); var frmJob = new JobEditor(config); frmJob.btnOk.Text = Resources.Languages.Resources.Txt_Modifier; //get task information var task = GetTask(jobName); if (task == null) { return; } frmJob.Job.Id = new Guid(jobName); frmJob.setTitle(); var triggerType = SchedulerTrigger.getFromTrigger(task.Definition.Triggers[0]); if (triggerType == SchedulerTrigger.TriggerTypes.OneTime) { frmJob.chkOneTime.Checked = true; frmJob.dtpOneTime.Value = task.Definition.Triggers[0].StartBoundary; } else { frmJob.dtpHour.Value = task.Definition.Triggers[0].StartBoundary; frmJob.cmbFrequency.SelectedIndex = (int)triggerType; } if (frmJob.ShowDialog(this) == DialogResult.OK) { //recordJob(frmJob); } }