Exemple #1
0
        public static ScheduledTaskData GetTask()
        {
            SchedulingManager manager = SchedulingManager.GetManager();

            ScheduledTaskData task = manager.GetTaskData()
                                     .Where(i => i.Key == taskKey)
                                     .SingleOrDefault();

            return(task);
        }
        /// <summary>
        /// get next execution time
        /// </summary>
        /// <param name="task">task for which to compute next execution time</param>
        /// <param name="referencetime">time to use as reference base (optional)</param>
        /// <returns>next execution time or null if no next execution is scheduled</returns>
        public static DateTime?NextExecutionTime(this ScheduledTaskData task, DateTime?referencetime = null)
        {
            if (!task.Interval.HasValue)
            {
                return(null);
            }

            referencetime ??= DateTime.Now;
            return(ExecutionTime(task, referencetime.Value + task.Interval.Value));
        }
        /// <inheritdoc />
        public Task <long> Create(ScheduledTaskData data)
        {
            ScheduledDays days = data.Days;

            if (days == ScheduledDays.None)
            {
                days = ScheduledDays.All;
            }
            DateTime?nextexecution = data.FirstExecutionTime();

            return(insert.ExecuteAsync(data.Name, data.WorkableType, data.WorkableName, data.WorkableRevision, nextexecution, days, data.Interval));
        }
        static DateTime?ExecutionTime(this ScheduledTaskData task, DateTime time)
        {
            ScheduledDays dayfilter = task.Days;

            if (dayfilter == ScheduledDays.None)
            {
                dayfilter = ScheduledDays.All;
            }

            while ((time.DayOfWeek.ToScheduledDays() & dayfilter) == ScheduledDays.None)
            {
                time += TimeSpan.FromDays(1.0);
            }

            return(time);
        }
Exemple #5
0
 public async Task <ScheduledTask> CreateScript(ScheduledTaskData task)
 {
     logger.LogInformation($"Creating scheduled task {task.Name}");
     return(await scheduledtaskservice.GetById(await scheduledtaskservice.Create(task)));
 }
 /// <summary>
 /// get next execution time
 /// </summary>
 /// <param name="task">task for which to compute next execution time</param>
 /// <returns>next execution time or null if no next execution is scheduled</returns>
 public static DateTime?FirstExecutionTime(this ScheduledTaskData task)
 {
     return(ExecutionTime(task, DateTime.Now));
 }