/// <summary>
        /// Si el job es de tipo Automático crea un trigger en CGControlPanel y en Quartz. Se ejecuta automáticamente.
        /// Si el job es de tipo manual se crea un trigger DESHABILITADO en CGControlPanel. Se ejecutará luego manualmente desde el menú contextual correspondiente -que disparará ExecuteManualJob-.
        /// </summary>
        /// <param name="job"></param>
        /// <param name="trigger"></param>
        public void AddTrigger(Job job, JobTrigger trigger)
        {
            // OJO: Si el trigger viene deshabilitado NO se lo debe agregar al Quartz, es el caso de agendamiento de un job manual
            job.Triggers.Add(trigger);
            trigger.Job = job;
            trigger.JobId = job.JobId;

            if (trigger.Validate())
            {
                UnitOfWork.JobTriggerRepository.Insert(trigger);
                UnitOfWork.JobsRepository.Update(job);
                UnitOfWork.Save();
                if (trigger.Enabled)
                {
                    AddQuartzJob(job, trigger);
                }
            }
            else {
                Utils.Validation.Helper.BuildValidationErrors(trigger.ValidationErrors);
            }
        }
        public void DeleteTrigger(JobTrigger trigger)
        {
            if(trigger.JobTriggerStatus != JobTriggerStatus.Ejecutado)
            {
                trigger.Deleted = true;
                trigger.DeletedDate = DateTime.Now;

                if (Status() == SchedulerStatus.Apagado)
                    throw new QuartzException("El servicio scheduler se encuentra apagado");

                if (trigger.Validate())
                {
                    UnitOfWork.JobTriggerRepository.Update(trigger);
                    UnitOfWork.Save();
                    Scheduler.UnscheduleJob(new TriggerKey(trigger.JobTriggerId.ToString()));
                    return;
                }
                UnitOfWork.Save();
                Utils.Validation.Helper.BuildValidationErrors(trigger.ValidationErrors);
                Scheduler.UnscheduleJob(new TriggerKey(trigger.JobTriggerId.ToString()));
                return;
            }
            throw new Exception("Procesos ya ejecutados no pueden ser eliminados.");
        }