private static IRegistration RegisterNamedYearlyScheduler( string name, ScheduledTaskElement taskConfig, out string scheduleName) { var parameters = new Dictionary <string, object> { { "month", taskConfig.Month }, { "day", taskConfig.Day } }; scheduleName = string.Format("yearlyScheduled-{0}", name); return (Component.For <ITaskScheduler>() .ImplementedBy <DateEveryYearTaskScheduler>() .DependsOn(parameters) .Named(scheduleName)); }
private static IRegistration RegisterNamedIntervalScheduler( string name, ScheduledTaskElement taskConfig, out string scheduleName) { var parameters = new Dictionary <string, object> { { "interval", taskConfig.Interval } }; scheduleName = string.Format("intervalScheduled-{0}", name); return (Component.For <ITaskScheduler>() .ImplementedBy <IntervalTaskScheduler>() .DependsOn(parameters) .Named(scheduleName)); }
private static IRegistration RegisterNamedDailyScheduler( string name, ScheduledTaskElement taskConfig, out string scheduleName) { var parameters = new Dictionary <string, object> { { "hour", taskConfig.Time.Hour }, { "minute", taskConfig.Time.Minute } }; scheduleName = string.Format("dailyScheduled-{0}", name); return (Component.For <ITaskScheduler>() .ImplementedBy <EveryDayTaskScheduler>() .DependsOn(parameters) .Named(scheduleName)); }
private static IRegistration[] RegisterNamedScheduledTask( string taskName, string scheduledName, ScheduledTaskElement taskConfig) { var registrations = new List <IRegistration>(); var parameters = new Dictionary <string, object> { { "name", taskName } }; registrations.Add(Component.For <IServiceTask>().ImplementedBy(taskConfig.Target).Named(taskName + "Impl")); registrations.Add( Component.For <IServiceTaskRunner>() .ImplementedBy <ScheduledTaskRunner>() .DependsOn(parameters) .DependsOn(Dependency.OnComponent(typeof(ITaskScheduler), scheduledName)).Named(taskName) .DependsOn(Dependency.OnComponent(typeof(IServiceTask), taskName + "Impl"))); return(registrations.ToArray()); }