public RecurringTaskModuleMiddleware(RequestDelegate next, IRevaleeClientRecurringSettings recurringConfig, IRevaleeRegistrar revalee, IOptions <RevaleeOptions> option)
 {
     _next            = next;
     _recurringConfig = recurringConfig;
     _revalee         = revalee;
     _option          = option;
 }
示例#2
0
        static async Task <TaskManifest> LoadManifest(HttpContext context, IRevaleeClientRecurringSettings recurringConfig, IRevaleeRegistrar revalee, IOptions <RevaleeOptions> option)
        {
            TaskManifest manifest = null;

            if (recurringConfig == null || !recurringConfig.TaskModel.Any())
            {
                manifest = new TaskManifest(revalee, context, option);
            }
            else
            {
                manifest = new TaskManifest(revalee, context, option, recurringConfig);

                if (!manifest.IsEmpty)
                {
                    await manifest.Start();
                }
            }

            return(manifest);
        }
示例#3
0
        internal TaskManifest(IRevaleeRegistrar revalee, HttpContext context, IOptions <RevaleeOptions> option, IRevaleeClientRecurringSettings configuredTasks)
        {
            if (configuredTasks == null)
            {
                throw new ArgumentNullException(nameof(configuredTasks));
            }

            _option          = option.Value;
            _revalee         = revalee;
            _context         = context;
            _callbackBaseUri = configuredTasks.CallbackBaseUri;

            InitVariables();

            var taskList = new List <ConfiguredTask>();

            using (var taskBuilder = new TaskBuilder(_callbackBaseUri))
            {
                foreach (var task in configuredTasks.TaskModel)
                {
                    taskList.Add(taskBuilder.Create(_clockSource, task.Periodicity, task.Day.GetValueOrDefault(), task.Hour.GetValueOrDefault(), task.Minute, task.Url));

                    if (CallbackBaseUri == null)
                    {
                        ScavengeForCallbackBaseUri(task.Url);
                    }
                }
            }

            _taskCollection = new ImmutableTaskCollection(taskList);
        }
示例#4
0
 internal static async Task PrepareManifest(HttpContext context, IRevaleeClientRecurringSettings recurringConfig, IRevaleeRegistrar revalee, IOptions <RevaleeOptions> option)
 {
     _manifest = await LoadManifest(context, recurringConfig, revalee, option);
 }