private void CreateNextJobTrigger(IJobExecutionContext context)
        {
            try
            {
                IScheduler scheduler = context.Scheduler;

                ITimedProcessing timedProcessing = (ITimedProcessing)context.JobDetail.JobDataMap["TimeProcessingObject"];

                DateTimeOffset nextExecutionOffSet = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc);

                ITrigger trigger = TriggerBuilder.Create()
                                   .StartAt(timedProcessing.GetNextExecutionDateTime())
                                   .Build();

                scheduler.RescheduleJob(context.Trigger.Key, trigger);

                if (context.NextFireTimeUtc.HasValue)
                {
                    logger.Info("Job was Executed " + context.JobDetail.Key + " at " + context.NextFireTimeUtc.Value.ToLocalTime());
                }
            }

            catch (Exception ex)
            {
                logger.Error("Invalid Trigger chaining " + ex.Message);
            }
        }
        private JobDataMap BuildJobDataMap(ITimedProcessing job)
        {
            JobDataMap jobDataMap = new JobDataMap();

            jobDataMap.Add("ActionId", job.ActionId);
            jobDataMap.Add("TimeProcessingObject", job);
            return(jobDataMap);
        }