示例#1
0
        public void AddJob(Reminder instReminder, IScheduleListener instCaller)
        {
            var job        = instReminder as IJob;
            var startAtUtc = instReminder.RemindAt.ToUniversalTime();
            var start      = new TimeOfDay(startAtUtc.Hour, startAtUtc.Minute);

            // JobDetail
            var jobDetail = JobBuilder.Create <Reminder>()
                            .WithDescription(instReminder.Description)
                            .WithIdentity(instReminder.UID)
                            .Build();

            jobDetail.JobDataMap["Caller"]   = instCaller;
            jobDetail.JobDataMap["Reminder"] = instReminder;

            // Trigger
            var offset     = new DateTimeOffset(startAtUtc);
            var jobTrigger = TriggerBuilder.Create()
                             .StartAt(new DateTimeOffset(startAtUtc))
                             //.WithSimpleSchedule(_ => _
                             //  .WithIntervalInSeconds(5)
                             //  .WithRepeatCount(1))
                             .Build();

            // Detail und Trigger zum Scheduler hinzufügen
            this.myScheduler.ScheduleJob(jobDetail, jobTrigger);
        }
示例#2
0
        public void AddJob(Reminder instReminder, IScheduleListener instCaller)
        {
            IJob job = instReminder as IJob;

            if (job != null)
            {
                // JobDetail
                IJobDetail jobDetail = JobBuilder.Create <Reminder>()
                                       .WithDescription(instReminder.Description)
                                       .WithIdentity(instReminder.UID)
                                       .Build();
                jobDetail.JobDataMap["Caller"] = instCaller;

                // Trigger
                DateTimeOffset offset     = new DateTimeOffset(instReminder.RemindAt);
                TimeOfDay      start      = new TimeOfDay(DateTime.Now.Hour, DateTime.Now.Minute);
                ITrigger       jobTrigger = TriggerBuilder.Create()
                                            .StartAt(new DateTimeOffset(DateTime.Now))
                                            .WithSimpleSchedule(_ => _
                                                                .WithIntervalInSeconds(20)
                                                                .WithRepeatCount(2))
                                            .Build();

                // Detail und Trigger zum Scheduler hinzufügen
                this.myScheduler.ScheduleJob(jobDetail, jobTrigger);
            }
        }
示例#3
0
        /// <summary>
        /// Wird vom Scheduler aufgerufen, wenn der Trigger für diesen Reminder ausgelöst wird.
        /// </summary>
        /// <param name="context"></param>
        public void Execute(IJobExecutionContext context)
        {
            JobDataMap map = context.JobDetail.JobDataMap;

            if (map != null)
            {
                IScheduleListener listener = map["Caller"] as IScheduleListener;
                if (listener != null)
                {
                    listener.ExecuteJob(this);
                }
            }
        }
示例#4
0
        /// <summary>
        /// Wird vom Scheduler aufgerufen, wenn der Trigger für diesen Reminder ausgelöst wird.
        /// </summary>
        /// <param name="context"></param>
        //public void Execute(IJobExecutionContext context)
        //{
        //  JobDataMap map = context.JobDetail.JobDataMap;
        //  if (map != null)
        //  {
        //    IScheduleListener listener = map["Caller"] as IScheduleListener;
        //    if (listener != null)
        //    {
        //      listener.ExecuteJob(this);
        //    }
        //  }
        //}

        #endregion


        void IJob.Execute(IJobExecutionContext context)
        {
            JobDataMap map = context.JobDetail.JobDataMap;

            if (map != null)
            {
                IScheduleListener listener = map["Caller"] as IScheduleListener;
                if (listener != null)
                {
                    Reminder reminder = context.JobDetail.JobDataMap["Reminder"] as Reminder;
                    listener.ExecuteJob(reminder);
                }
            }
        }