Exemple #1
0
        private void OnTimerTick(object state)
        {
            _logger.LogDebug("Ticked timer");

            var datetime  = DateTimeOffset.UtcNow;
            var reminders = _storage.FindBy(ReminderItemFilter.CreatedAt(datetime));

            foreach (var reminder in reminders)
            {
                _logger.LogInformation($"Mark reminder {reminder.Id:N} as ready");
                reminder.MarkReady();

                try
                {
                    _logger.LogInformation($"Sending reminder {reminder.Id:N}");
                    _sender.Send(
                        new ReminderNotification(
                            reminder.ContactId,
                            reminder.Message,
                            reminder.DateTime
                            )
                        );
                    OnReminderSent(reminder);
                }
                catch (ReminderSenderException exception)
                {
                    _logger.LogError(exception, "Exception occured while sending notification");
                    OnReminderFailed(reminder);
                }
            }
        }
Exemple #2
0
        public void FindAsync_WithIncorrectDate_ShouldRiseException()
        {
            var storage = new ReminderStorage(Factory.CreateClient());

            Assert.CatchAsync(
                () => storage.FindAsync(ReminderItemFilter.CreatedAt(DateTimeOffset.MinValue))
                );
        }
        public async Task Find_GivenRemindersInPastOrEqual_ShouldReturnNotEmptyCollection()
        {
            var datetime = DateTimeOffset.UtcNow;
            var storage  = new ReminderStorage(
                Create.Reminder.AtDatetime(datetime.AddMinutes(-1)),
                Create.Reminder.AtDatetime(datetime)
                );

            var result = await storage.FindByAsync(ReminderItemFilter.CreatedAt(datetime));

            CollectionAssert.IsNotEmpty(result);
        }
Exemple #4
0
        public async Task Find_GivenRemindersInPastOrEqual_ShouldReturnNotEmptyCollection()
        {
            var datetime = DateTimeOffset.UtcNow;
            var storage  = Create.Storage.
                           WithItems(
                Create.Reminder.InPast(),
                Create.Reminder.InPast()).
                           Build();

            var result = await storage.FindAsync(ReminderItemFilter.CreatedAt(datetime));

            CollectionAssert.IsNotEmpty(result);
        }