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); } } }
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); }
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); }