static async Task Main() { var scheduler = new ReminderScheduler( Logging.CreateLogger <ReminderScheduler>(), new ReminderStorage(ConnectionString), new ReminderSender(TelegramToken), new ReminderReceiver(TelegramToken) ); scheduler.ReminderSent += OnReminderSent; scheduler.ReminderFailed += OnReminderFailed; await scheduler.StartAsync( new ReminderSchedulerSettings { TimerDelay = TimeSpan.Zero, TimerInterval = TimeSpan.FromSeconds(1) }, CancellationTokenSource.Token ); Logger.LogInformation("Waiting reminders.."); Logger.LogInformation("Press any key to stop"); Console.ReadKey(); CancellationTokenSource.Cancel(); }
public async Task GivenReminderWithPastDateAndFailedSender_ShouldRaiseFailedEvent() { var raised = false; var scheduler = new ReminderScheduler(Logger, Storage, FailedSender, Receiver); scheduler.ReminderFailed += (sender, args) => raised = true; await scheduler.StartAsync(DefaultSettings); Receiver.SendMessage(DateTimeOffset.UtcNow, "Message", "ContactId"); WaitTimers(); Assert.IsTrue(raised); }
static void Main(string[] args) { var scheduler = new ReminderScheduler( new ReminderStorage(), new ReminderSender(Token), new ReminderReceiver(Token) ); scheduler.ReminderSent += OnReminderSent; var cancellationToken = new CancellationTokenSource().Token; var t = scheduler.StartAsync(new ReminderSchedulerSettings { TimerDelay = TimeSpan.Zero, TimerInterval = TimeSpan.FromSeconds(1) }, cancellationToken); Console.WriteLine("Waiting reminders.."); Console.WriteLine("Press any key to stop"); Console.ReadKey(true); }