示例#1
0
        public static void AssignQuartzTrigger(this IOperableTrigger jobTrigger, IXpandJobTrigger trigger, string jobName, Type type, string jobGroup)
        {
            jobTrigger.EndTimeUtc   = trigger.EndTimeUtc;
            jobTrigger.Priority     = (int)trigger.Priority;
            jobTrigger.CalendarName = GetCalendarName(trigger);
            jobTrigger.JobDataMap   = new JobDataMap();
            jobTrigger.StartTimeUtc = trigger.StartTimeUtc;
            jobTrigger.Description  = trigger.Description;
            jobTrigger.JobKey       = new JobKey(jobName, type.FullName);
            jobTrigger.Key          = new TriggerKey(jobTrigger.Key.Name, GetGroup(jobName, type, jobGroup));
            var impl = jobTrigger as SimpleTriggerImpl;

            if (impl != null)
            {
                impl.AssignQuartzTrigger((IXpandSimpleTrigger)trigger);
            }
            else
            {
                var triggerImpl = jobTrigger as CronTriggerImpl;
                if (triggerImpl != null)
                {
                    triggerImpl.AssignQuartzTrigger((IXpandCronTrigger)trigger);
                }
            }
        }
示例#2
0
 static void Initialize(ICalendar calendar, IXpandJobTrigger trigger)
 {
     if (calendar is AnnualCalendar)
     {
         InitializeAnnual(calendar as AnnualCalendar, trigger.Calendar as IAnnualCalendar);
     }
     else if (calendar is HolidayCalendar)
     {
         InitializeHoliday(calendar as HolidayCalendar, trigger.Calendar as IHolidayCalendar);
     }
     else if (calendar is WeeklyCalendar)
     {
         InitializeWeekly(calendar as WeeklyCalendar, trigger.Calendar as IWeeklyCalendar);
     }
     else if (calendar is MonthlyCalendar)
     {
         InitializeMonthly(calendar as MonthlyCalendar, trigger.Calendar as IMonthlyCalendar);
     }
     else if (calendar is DailyCalendar)
     {
         InitializeDaily(calendar as DailyCalendar, trigger.Calendar as IDailyCalendar);
     }
     else if (calendar is CronCalendar)
     {
         InitializeCron(calendar as CronCalendar, trigger.Calendar as ICronCalendar);
     }
 }
示例#3
0
        static IOperableTrigger GetTrigger(this IScheduler scheduler, IXpandJobTrigger jobTrigger, string groupName, string jobName, Type jobType)
        {
            var trigger = jobTrigger.CreateTrigger(jobName, jobType, groupName);

            CalendarBuilder.Build(jobTrigger, scheduler);
            return(trigger);
        }
示例#4
0
 public static void Build(IXpandJobTrigger trigger, IScheduler scheduler) {
     if (trigger.Calendar != null) {
         var calendar = (ICalendar)XafTypesInfo.Instance.FindTypeInfo(trigger.Calendar.CalendarTypeFullName).Type.CreateInstance();
         Initialize(calendar, trigger);
         scheduler.AddCalendar(trigger.Calendar.Name, calendar, true, true);
     }
 }
示例#5
0
 Action <IOperableTrigger> StoreTrigger(IXpandJobTrigger jobTrigger)
 {
     return(trigger => {
         trigger.AssignQuartzTrigger(jobTrigger, trigger.JobKey.Name, TypesInfo.FindTypeInfo(trigger.JobKey.Group).Type, null);
         Scheduler.StoreTrigger(trigger);
     });
 }
示例#6
0
        public static IOperableTrigger CreateTrigger(this IXpandJobTrigger jobTrigger, string jobName, Type jobType,
                                                     string jobGroup)
        {
            IOperableTrigger trigger = CreateTriggerCore(jobTrigger, jobType);

            trigger.AssignQuartzTrigger(jobTrigger, jobName, jobType, jobGroup);
            return(trigger);
        }
示例#7
0
 public static void Build(IXpandJobTrigger trigger, IScheduler scheduler)
 {
     if (trigger.Calendar != null)
     {
         var calendar = (ICalendar)Activator.CreateInstance(XafTypesInfo.Instance.FindTypeInfo(trigger.Calendar.CalendarTypeFullName).Type);
         Initialize(calendar, trigger);
         scheduler.AddCalendar(trigger.Calendar.Name, calendar, true, true);
     }
 }
示例#8
0
        void ScheduleJob(IXpandJobTrigger trigger)
        {
            var jobDetail = View.CurrentObject as IXpandJobDetail;

            if (jobDetail != null)
            {
                Scheduler.ScheduleJob(trigger, jobDetail, jobDetail.Group.Name);
            }
        }
示例#9
0
 static void Initialize(ICalendar calendar, IXpandJobTrigger trigger) {
     if (calendar is AnnualCalendar) {
         InitializeAnnual(calendar as AnnualCalendar, trigger.Calendar as IAnnualCalendar);
     } else if (calendar is HolidayCalendar) {
         InitializeHoliday(calendar as HolidayCalendar, trigger.Calendar as IHolidayCalendar);
     } else if (calendar is WeeklyCalendar) {
         InitializeWeekly(calendar as WeeklyCalendar, trigger.Calendar as IWeeklyCalendar);
     } else if (calendar is MonthlyCalendar) {
         InitializeMonthly(calendar as MonthlyCalendar, trigger.Calendar as IMonthlyCalendar);
     } else if (calendar is DailyCalendar) {
         InitializeDaily(calendar as DailyCalendar, trigger.Calendar as IDailyCalendar);
     } else if (calendar is CronCalendar) {
         InitializeCron(calendar as CronCalendar, trigger.Calendar as ICronCalendar);
     }
 }
示例#10
0
 public static void AssignQuartzTrigger(this IOperableTrigger jobTrigger, IXpandJobTrigger trigger, string jobName, Type type, string jobGroup) {
     jobTrigger.EndTimeUtc = trigger.EndTimeUtc;
     jobTrigger.Priority = (int)trigger.Priority;
     jobTrigger.CalendarName = GetCalendarName(trigger);
     jobTrigger.JobDataMap = new JobDataMap();
     jobTrigger.StartTimeUtc = trigger.StartTimeUtc;
     jobTrigger.Description = trigger.Description;
     jobTrigger.JobKey=new JobKey(jobName,type.FullName);
     jobTrigger.Key = new TriggerKey(jobTrigger.Key.Name, GetGroup(jobName, type, jobGroup));
     if (jobTrigger is SimpleTriggerImpl)
         ((SimpleTriggerImpl)jobTrigger).AssignQuartzTrigger((IXpandSimpleTrigger)trigger);
     else if (jobTrigger is CronTriggerImpl)
         ((CronTriggerImpl)jobTrigger).AssignQuartzTrigger((ICronTrigger)trigger);
     else if (jobTrigger is NthIncludedDayTrigger)
         ((NthIncludedDayTrigger)jobTrigger).AssignQuartzTrigger((INthIncludedDayTrigger)trigger);
 }
示例#11
0
 public static void AssignQuartzTrigger(this IOperableTrigger jobTrigger, IXpandJobTrigger trigger, string jobName, Type type, string jobGroup) {
     jobTrigger.EndTimeUtc = trigger.EndTimeUtc;
     jobTrigger.Priority = (int)trigger.Priority;
     jobTrigger.CalendarName = GetCalendarName(trigger);
     jobTrigger.JobDataMap = new JobDataMap();
     jobTrigger.StartTimeUtc = trigger.StartTimeUtc;
     jobTrigger.Description = trigger.Description;
     jobTrigger.JobKey = new JobKey(jobName, type.FullName);
     jobTrigger.Key = new TriggerKey(jobTrigger.Key.Name, GetGroup(jobName, type, jobGroup));
     var impl = jobTrigger as SimpleTriggerImpl;
     if (impl != null)
         impl.AssignQuartzTrigger((IXpandSimpleTrigger)trigger);
     else {
         var triggerImpl = jobTrigger as CronTriggerImpl;
         if (triggerImpl != null)
             triggerImpl.AssignQuartzTrigger((IXpandCronTrigger)trigger);
     }
 }
示例#12
0
        static IOperableTrigger CreateTriggerCore(this IXpandJobTrigger jobTrigger, Type jobType)
        {
            IOperableTrigger trigger = null;

            if (jobTrigger is IXpandSimpleTrigger)
            {
                trigger = new SimpleTriggerImpl(jobTrigger.Name, jobType.FullName);
            }
            if (jobTrigger is IXpandCronTrigger)
            {
                trigger = new CronTriggerImpl(jobTrigger.Name, jobType.FullName);
            }

            if (trigger != null)
            {
                return(trigger);
            }
            throw new NotImplementedException(jobTrigger.GetType().FullName);
        }
示例#13
0
 public static void AssignQuartzTrigger(this IOperableTrigger jobTrigger, IXpandJobTrigger trigger, string jobName, Type type, string jobGroup)
 {
     jobTrigger.EndTimeUtc   = trigger.EndTimeUtc;
     jobTrigger.Priority     = (int)trigger.Priority;
     jobTrigger.CalendarName = GetCalendarName(trigger);
     jobTrigger.JobDataMap   = new JobDataMap();
     jobTrigger.StartTimeUtc = trigger.StartTimeUtc;
     jobTrigger.Description  = trigger.Description;
     jobTrigger.JobKey       = new JobKey(jobName, type.FullName);
     jobTrigger.Key          = new TriggerKey(jobTrigger.Key.Name, GetGroup(jobName, type, jobGroup));
     if (jobTrigger is SimpleTriggerImpl)
     {
         ((SimpleTriggerImpl)jobTrigger).AssignQuartzTrigger((IXpandSimpleTrigger)trigger);
     }
     else if (jobTrigger is CronTriggerImpl)
     {
         ((CronTriggerImpl)jobTrigger).AssignQuartzTrigger((IXpandCronTrigger)trigger);
     }
     else if (jobTrigger is NthIncludedDayTrigger)
     {
         ((NthIncludedDayTrigger)jobTrigger).AssignQuartzTrigger((INthIncludedDayTrigger)trigger);
     }
 }
示例#14
0
 void StoreTriggers(IXpandJobTrigger jobTrigger)
 {
     jobTrigger.JobDetails.Select(detail => Scheduler.GetJobDetail(detail)).Where(detail1 => detail1 != null).ToList().ForEach(
         jobDetail => Scheduler.GetTriggersOfJob(jobDetail.Key).OfType <IOperableTrigger>().ToList().ForEach(
             StoreTrigger(jobTrigger)));
 }
示例#15
0
 public static DateTimeOffset ScheduleJob(this IScheduler scheduler, IXpandJobTrigger jobTrigger, IXpandJobDetail jobDetail, string groupName) {
     IOperableTrigger trigger = scheduler.GetTrigger(jobTrigger, groupName, jobDetail.Name, jobDetail.Job.JobType);
     return scheduler.ScheduleJob(trigger);
 }
示例#16
0
 void StoreTriggers(IXpandJobTrigger jobTrigger) {
     jobTrigger.JobDetails.Select(detail => Scheduler.GetJobDetail(detail)).Where(detail1 => detail1!=null).ToList().ForEach(
         jobDetail => Scheduler.GetTriggersOfJob(jobDetail.Key).OfType<IOperableTrigger>().ToList().ForEach(
             StoreTrigger(jobTrigger)));
 }
示例#17
0
 Action<IOperableTrigger> StoreTrigger(IXpandJobTrigger jobTrigger) {
     return trigger => {
         trigger.AssignQuartzTrigger(jobTrigger, trigger.JobKey.Name, TypesInfo.FindTypeInfo(trigger.JobKey.Group).Type, null);
         Scheduler.StoreTrigger(trigger);
     };
 }
示例#18
0
 void CreateNewTriggers(IXpandJobTrigger jobTrigger) {
     jobTrigger.JobDetails.Where(detail1 => !Scheduler.HasTriggers(detail1)).Each(CreateTrigger(jobTrigger));
 }
示例#19
0
 Action<IXpandJobDetail> CreateTrigger(IXpandJobTrigger jobTrigger) {
     return detail => Scheduler.ScheduleJob(jobTrigger, detail, detail.Group != null ? detail.Group.Name : null);
 }
示例#20
0
        public static void StoreTrigger(this IScheduler scheduler, IXpandJobTrigger jobTrigger, IXpandJobDetail jobDetail, string groupName)
        {
            IOperableTrigger trigger = scheduler.GetTrigger(jobTrigger, groupName, jobDetail.Name, jobDetail.Job.JobType);

            scheduler.StoreTrigger(trigger);
        }
示例#21
0
 void UpdateTriggers(IXpandJobTrigger obj) {
     StoreTriggers(obj);
     CreateNewTriggers(obj);
 }
示例#22
0
        public static DateTimeOffset ScheduleJob(this IScheduler scheduler, IXpandJobTrigger jobTrigger, IXpandJobDetail jobDetail, string groupName)
        {
            IOperableTrigger trigger = scheduler.GetTrigger(jobTrigger, groupName, jobDetail.Name, jobDetail.Job.JobType);

            return(scheduler.ScheduleJob(trigger));
        }
示例#23
0
 Action <IXpandJobDetail> CreateTrigger(IXpandJobTrigger jobTrigger)
 {
     return(detail => Scheduler.ScheduleJob(jobTrigger, detail, detail.Group != null ? detail.Group.Name : null));
 }
示例#24
0
 void ScheduleJob(IXpandJobTrigger trigger) {
     var jobDetail = View.CurrentObject as IXpandJobDetail;
     if (jobDetail != null) {
         Scheduler.ScheduleJob(trigger, jobDetail, jobDetail.Group.Name);
     }
 }
示例#25
0
 public static void StoreTrigger(this IScheduler scheduler, IXpandJobTrigger jobTrigger, IXpandJobDetail jobDetail, string groupName) {
     IOperableTrigger trigger = scheduler.GetTrigger(jobTrigger, groupName, jobDetail.Name, jobDetail.Job.JobType);
     scheduler.StoreTrigger(trigger);
 }
示例#26
0
 static string GetCalendarName(IXpandJobTrigger trigger)
 {
     return(trigger.Calendar != null ? trigger.Calendar.Name : null);
 }
示例#27
0
 static IOperableTrigger GetTrigger(this IScheduler scheduler, IXpandJobTrigger jobTrigger, string groupName, string jobName, Type jobType) {
     var trigger = jobTrigger.CreateTrigger(jobName, jobType, groupName);
     CalendarBuilder.Build(jobTrigger, scheduler);
     return trigger;
 }
示例#28
0
 void UpdateTriggers(IXpandJobTrigger obj)
 {
     StoreTriggers(obj);
     CreateNewTriggers(obj);
 }
示例#29
0
 static string GetCalendarName(IXpandJobTrigger trigger) {
     return trigger.Calendar != null ? trigger.Calendar.Name : null;
 }
示例#30
0
 void CreateNewTriggers(IXpandJobTrigger jobTrigger)
 {
     jobTrigger.JobDetails.Where(detail1 => !Scheduler.HasTriggers(detail1)).Each(CreateTrigger(jobTrigger));
 }