public void DeleteRelation(JobRelation poJobRelation)
 {
     if (this.moScheduler != null)
     {
         this.moScheduler.DeleteJob(new JobKey(poJobRelation.JobName, poJobRelation.Group));
     }
 }
        public void Delete(JobRelation poJobRelation)
        {
            var loList = this.Read();

            loList.Remove(poJobRelation);
            this.Write(loList);
        }
 public void DeleteJobRelation(JobRelation poJobRelation)
 {
     JobRepository.Instance.Delete(poJobRelation);
     if (Scheduler.Instance.IsSchedulerStarted())
     {
         Scheduler.Instance.DeleteRelation(poJobRelation);
     }
 }
 public void PutAddRelation(JobRelation poJobRelation)
 {
     JobRepository.Instance.Write(poJobRelation);
     if (Scheduler.Instance.IsSchedulerStarted())
     {
         Scheduler.Instance.AddRelation(poJobRelation);
     }
 }
        //public void AddRelation(TriggerRelation poTriggerRelation)
        //{
        //    if (this.moScheduler != null)
        //    {
        //        var loList = TriggerRepository.Instance.Read();
        //        loList.Remove(poTriggerRelation);
        //        loList.Add(poTriggerRelation);
        //        TriggerRepository.Instance.Write(loList);

        //        var loJobKey = this.moScheduler.GetJobKeys(GroupMatcher<JobKey>.GroupContains(poTriggerRelation.Group)).FirstOrDefault(item => item.Name == poTriggerRelation.JobName);
        //        if (loJobKey != null)
        //        {
        //            CronTriggerImpl loTrigger = new CronTriggerImpl(poTriggerRelation.TriggerName, poTriggerRelation.Group, poTriggerRelation.CronExpression);
        //            loTrigger.JobKey = loJobKey;
        //            if (this.moScheduler.GetTriggersOfJob(loJobKey).Any(item => item.Key.Name == loTrigger.Key.Name && item.Key.Group == loTrigger.Key.Group))
        //                this.moScheduler.RescheduleJob(loTrigger.Key, loTrigger);
        //            else
        //                this.moScheduler.ScheduleJob(loTrigger);
        //        }
        //    }
        //}

        public void AddRelation(JobRelation poJobRelation)
        {
            if (this.moScheduler != null)
            {
                var loSchedulerJob = MefExporter.Instance.GetSchedulerJob(poJobRelation.Type);
                if (loSchedulerJob != null)
                {
                    Quartz.Collection.HashSet <ITrigger> loTriggerSet = new Quartz.Collection.HashSet <ITrigger>();
                    loTriggerSet.Add(new CronTriggerImpl("Trg. for {0}".FormatWith(poJobRelation.JobName), poJobRelation.Group, poJobRelation.CronExpression));
                    var loJobDetail = new JobDetailImpl(poJobRelation.JobName, poJobRelation.Group, loSchedulerJob.GetType());
                    loJobDetail.Description = loSchedulerJob.Description;
                    loJobDetail.JobDataMap.Add(Constants.JobConfigEntry, poJobRelation.JsonConfig);
                    this.moScheduler.ScheduleJob(loJobDetail, loTriggerSet, true);
                }
            }
        }