示例#1
0
        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);
        }
示例#3
0
        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);
        }