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);
        }
Example #2
0
        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);
            }
        }