Esempio n. 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();
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            //TestDataInMemory.Populate();

            ReceiverDomain receiverDomain = new ReceiverDomain();

            receiverDomain.Run();

            ReminderScheduler scheduler = ReminderScheduler.Instance;

            scheduler.Run();
        }
Esempio n. 3
0
        public TimerScheduler()
        {
            Log.Logger.Information($"Creating TimerScheduler");

            BeeperScheduler   = new BeeperScheduler();
            ReminderScheduler = new ReminderScheduler();

            BeeperScheduler.BeeperTimeUp    += OnBeeperTimeUp;
            ReminderScheduler.RingingNeeded += OnReminderTimeUp;

            Log.Logger.Information($"Creating TimerScheduler done");
        }
Esempio n. 4
0
        public void GivenReminderWithPastDateAndFailedSender_ShouldRaiseFailedEvent()
        {
            var raised = false;

            using var scheduler       = new ReminderScheduler(Logger, Storage, FailedSender, Receiver);
            scheduler.ReminderFailed += (sender, args) => raised = true;

            scheduler.Start(DefaultSettings);
            Receiver.SendMessage(DateTimeOffset.UtcNow, "Message", "ContactId");
            WaitTimers();

            Assert.IsTrue(raised);
        }
        public async Task GivenReminderWithPastDateAndSuccessSender_ShouldRaiseSentEvent()
        {
            var raised    = false;
            var scheduler = new ReminderScheduler(Logger, Storage, SuccessSender, Receiver);

            scheduler.ReminderSent += (sender, args) => raised = true;

            await scheduler.StartAsync(DefaultSettings);

            Receiver.SendMessage(DateTimeOffset.UtcNow, "Message", "ContactId");
            WaitTimers();

            Assert.IsTrue(raised);
        }
Esempio n. 6
0
        static void Main(string[] args)
        {
            const string token             = "1195265347:AAFqPN_gjbV95a369tnRuysJKSNt4DVn9ms";
            var          SchedulerSettings =
                new ReminderSchedulerSettings(TimeSpan.FromSeconds(5), TimeSpan.FromSeconds(10));

            using var scheduler = new ReminderScheduler(
                      new ReminderItemStorage(),
                      new ReminderItemReceiver(token),
                      new ReminderItemSender(token),
                      SchedulerSettings);
            scheduler.Run();
            Console.WriteLine("Scheduler working");
            Console.ReadKey();
        }
Esempio n. 7
0
        static void Main()
        {
            const string token = "579816050:AAEUKVMwEzwg1zgHnMH4q4rn3pjNu4Dovus";

            using var factory   = LoggerFactory.Create(_ => _.AddConsole());
            using var scheduler = new ReminderScheduler(
                      factory.CreateLogger <ReminderScheduler>(),
                      new ReminderItemStorage(),
                      new ReminderItemReceiver(token),
                      new ReminderItemSender(token),
                      new ReminderSchedulerSettings(
                          readyTimerInterval: TimeSpan.FromSeconds(3),
                          sendTimerInterval: TimeSpan.FromSeconds(5))
                      );
            scheduler.Run();
            Console.ReadKey();
        }
Esempio n. 8
0
 static void Main(string[] args)
 {
     using var scheduler = new ReminderScheduler(
               Logging.CreateLogger <ReminderScheduler>(),
               new ReminderStorage(),
               new ReminderSender(TelegramToken),
               new ReminderReceiver(TelegramToken)
               );
     scheduler.ReminderSent   += OnReminderSent;
     scheduler.ReminderFailed += OnReminderFailed;
     scheduler.Start(
         new ReminderSchedulerSettings
     {
         TimerDelay    = TimeSpan.Zero,
         TimerInterval = TimeSpan.FromSeconds(1)
     }
         );
     Logger.LogInformation("Waiting reminders..");
     Logger.LogInformation("Press any key to stop");
     Console.ReadKey();
 }
Esempio n. 9
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);
        }
Esempio n. 10
0
        static void Main()
        {
            var storage = new ReminderItemStorage();

            storage.Add(
                new ReminderItem(Guid.NewGuid(), "header", "message one", DateTimeOffset.Now.AddSeconds(20), "Artem"));
            storage.Add(
                new ReminderItem(Guid.NewGuid(), "header", "message two", DateTimeOffset.Now.AddMinutes(-1), "Artem"));
            storage.Add(
                new ReminderItem(Guid.NewGuid(), "header", "message three", DateTimeOffset.Now.AddMinutes(1), "Artem"));

            using var scheduler = new ReminderScheduler(
                      storage,
                      new ReminderSchedulerSettings(
                          readyTimerInterval: TimeSpan.FromSeconds(3),
                          sendTimerInterval: TimeSpan.FromSeconds(5))
                      );
            scheduler.ReminderSent += (sender, args) =>
                                      Console.WriteLine($"Reminder for: {args.DateTime} with message: {args.Message}");
            scheduler.Run();

            Console.WriteLine("Scheduler working");
            Console.ReadKey();
        }
Esempio n. 11
0
        public void test2()
        {
            var reminder = new ReminderItem[] { new ReminderItem(Guid.NewGuid()
                                                                 , "Test1"
                                                                 , "Reminder1"
                                                                 , DateTimeOffset.UtcNow.AddMinutes(-1)
                                                                 , "UserName") };
            var storage = new ReminderItemStorage(reminder);

            using var cheduler = new ReminderScheduler(
                      storage,
                      new ReminderItemReceiver(),
                      new ReminderItemSender(),
                      new ReminderSchedulerSettings(TimeSpan.FromMilliseconds(300),
                                                    TimeSpan.FromMilliseconds(500))
                      );

            cheduler.Run();
            Thread.Sleep(TimeSpan.FromMilliseconds(800));
            var item = storage.FindBy(ReminderItemFilter.ByStatus(ReminderItemStatus.Filed));

            // goto нет sleep
            Assert.IsNotNull(item);
        }