private async Task OnTickAsync() { _logger.LogDebug("Ticked timer"); foreach (var reminder in await _storage.FindByAsync(ReminderItemFilter.CreatedAtNow())) { _logger.LogInformation($"Mark reminder {reminder.Id:N} as ready"); reminder.MarkReady(); await _storage.UpdateAsync(reminder); try { _logger.LogInformation($"Sending reminder {reminder.Id:N}"); await _sender.SendAsync( new ReminderNotification( reminder.ContactId, reminder.Message, reminder.DateTime ) ); await OnReminderSentAsync(reminder); } catch (ReminderSenderException exception) { _logger.LogError(exception, "Exception occured while sending notification"); await OnReminderFailedAsync(reminder); } } }
public async Task <IActionResult> Find([FromQuery] FindReminderViewModel model) { model ??= FindReminderViewModel.Default; var items = await _storage.FindByAsync( new ReminderItemFilter(model.DateTimeConverted, model.Status) ); return(Ok( items.Select(item => new GetReminderViewModel(item)).ToArray() )); }