private async Task <SchedulerReminder> GetReminder(Guid id) { Reminder reminder = await _reminderRepository.GetFirstOrDefaultAsync( predicate : t => t.Id == id); SchedulerReminder schedulerReminder = _mapper.Map <Reminder, SchedulerReminder>(reminder); return(schedulerReminder); }
private void OnAddRememainderClicked(object sender, RoutedEventArgs e) { if (this.ReminderList != null) { var reminders = this.ReminderList.ItemsSource as IList; this.ReminderList.ItemContainerGenerator.StatusChanged += this.OnListViewItemGeneratorStatusChanged; if (reminders == null) { reminders = new ObservableCollection <SchedulerReminder>(); } else if (reminders.Count == 5) { // Only maximum of 5 reminders allowed in editor window. return; } var newRemainder = new SchedulerReminder(); reminders.Add(newRemainder); this.ReminderList.ItemsSource = reminders; } }
public static async Task ScheduleReminder(this IScheduler scheduler, SchedulerReminder reminder) { JobKey jobKey = new JobKey(reminder.Id.ToString(), ConstantsStorage.REMINDER_GROUP); TriggerKey triggerKey = new TriggerKey(reminder.Id.ToString(), ConstantsStorage.REMINDER_GROUP); if (reminder.CronExpression != CronExpressionGenerator.TriggerInThePast) { IJobDetail job = JobBuilder.Create <NotificationJob>() .WithIdentity(jobKey) .UsingJobData(NotificationJob.JobDataKey, reminder.Id.ToString()) .UsingJobData(NotificationJob.JobActivityTypeKey, ConstantsStorage.REMINDER) .Build(); ITrigger trigger = TriggerBuilder.Create() .WithIdentity(triggerKey) .StartAt(DateTime.SpecifyKind(reminder.StartTime, DateTimeKind.Utc)) .WithCronSchedule(reminder.CronExpression, ce => ce.InTimeZone(TimeZoneInfo.Utc)) .Build(); await scheduler.ScheduleJob(job, trigger); } }
public async System.Threading.Tasks.Task RescheduleReminderById(Guid id) { SchedulerReminder schedulerReminder = await GetReminder(id); await _scheduler.RescheduleReminder(schedulerReminder); }
public static async Task RescheduleReminder(this IScheduler scheduler, SchedulerReminder reminder) { await UnscheduleReminder(scheduler, reminder); await ScheduleReminder(scheduler, reminder); }
public static async Task UnscheduleReminder(this IScheduler scheduler, SchedulerReminder reminder) { JobKey jobKey = new JobKey(reminder.Id.ToString(), ConstantsStorage.REMINDER_GROUP); await scheduler.DeleteJob(jobKey); }