コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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());
        }