public async Task <Exception> ProcessEvents(Aggregate aggregate) { foreach (var domainEvent in aggregate.Outbox.ToArray()) { try { var handler = GetHandler(domainEvent); await handler.Handle(domainEvent, _serviceFactory); aggregate.ClearEvent(domainEvent); } catch (Exception ex) { return(ex); } } return(null); }