private IJobDetail CreateJob(Type jobType, Type timeTaskType, TimeTaskBase timeTask)
 {
     return(JobBuilder
            .Create(jobType)
            .WithIdentity($"{timeTaskType.Name}-{timeTask.Id.ToString()}", timeTask.Type)
            .UsingJobData("TimeTask", JsonConvert.SerializeObject(timeTask,
                                                                  new JsonSerializerSettings()
     {
         TypeNameHandling = TypeNameHandling.All
     }))
            .Build());
 }
Exemplo n.º 2
0
        private TimeSpan GetTimeSpan(TimeTaskBase timeTask)
        {
            var currentDateTime = _dateTimeProvider.GetCurrentDateTime();

            if (timeTask.StartDate.CompareTo(currentDateTime) == -1)
            {
                throw new ArgumentException("Invalid task StartDate");
            }
            var timeSpan = timeTask.StartDate - currentDateTime;

            return(timeSpan);
        }
        public async Task <InfoResponse> ScheduleTimeTask(Type jobType, Type taskClassType, TimeTaskBase timeTask)
        {
            var job     = CreateJob(jobType, taskClassType, timeTask);
            var trigger = _taskTriggerFactory.CreateTrigger(timeTask);

            var offset = await _scheduler.ScheduleJob(job, trigger);

            _logger.LogInformation($"{taskClassType} scheduled on {timeTask.StartDate} offset: {offset}");
            return(timeTask.GetInfoResponse());
        }