private async Task TryRunHandler <TEvent>(IEventHandlerAsync <TEvent> handler, TEvent @event) { try { if (!await handler.ShouldHandleAsync(@event).ConfigureAwait(false)) { return; } await handler.HandleAsync(@event).ConfigureAwait(false); } catch (Exception exception) { await TryReportError(exception, handler, @event).ConfigureAwait(false); } }
public Task <bool> ShouldHandleAsync(TEvent @event) => _eventHandler.ShouldHandleAsync(@event);