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); } } }
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); } }
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); }
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); } }
Action <IOperableTrigger> StoreTrigger(IXpandJobTrigger jobTrigger) { return(trigger => { trigger.AssignQuartzTrigger(jobTrigger, trigger.JobKey.Name, TypesInfo.FindTypeInfo(trigger.JobKey.Group).Type, null); Scheduler.StoreTrigger(trigger); }); }
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); }
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); } }
void ScheduleJob(IXpandJobTrigger trigger) { var jobDetail = View.CurrentObject as IXpandJobDetail; if (jobDetail != null) { Scheduler.ScheduleJob(trigger, jobDetail, jobDetail.Group.Name); } }
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); }
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); } }
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); }
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); } }
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))); }
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); }
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))); }
Action<IOperableTrigger> StoreTrigger(IXpandJobTrigger jobTrigger) { return trigger => { trigger.AssignQuartzTrigger(jobTrigger, trigger.JobKey.Name, TypesInfo.FindTypeInfo(trigger.JobKey.Group).Type, null); Scheduler.StoreTrigger(trigger); }; }
void CreateNewTriggers(IXpandJobTrigger jobTrigger) { jobTrigger.JobDetails.Where(detail1 => !Scheduler.HasTriggers(detail1)).Each(CreateTrigger(jobTrigger)); }
Action<IXpandJobDetail> CreateTrigger(IXpandJobTrigger jobTrigger) { return detail => Scheduler.ScheduleJob(jobTrigger, detail, detail.Group != null ? detail.Group.Name : null); }
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); }
void UpdateTriggers(IXpandJobTrigger obj) { StoreTriggers(obj); CreateNewTriggers(obj); }
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)); }
Action <IXpandJobDetail> CreateTrigger(IXpandJobTrigger jobTrigger) { return(detail => Scheduler.ScheduleJob(jobTrigger, detail, detail.Group != null ? detail.Group.Name : null)); }
static string GetCalendarName(IXpandJobTrigger trigger) { return(trigger.Calendar != null ? trigger.Calendar.Name : null); }
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; }
static string GetCalendarName(IXpandJobTrigger trigger) { return trigger.Calendar != null ? trigger.Calendar.Name : null; }