예제 #1
0
        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);
            }
        }
예제 #2
0
 public Task <bool> ShouldHandleAsync(TEvent @event) => _eventHandler.ShouldHandleAsync(@event);