public void DetectConflicts <T>(Predicate <List <IDomainEventMessage> > predicate, ContextAwareConflictExceptionSupplier <T> exceptionSupplier) where T : Exception { _conflictsResolved = true; List <IDomainEventMessage> unexpectedEvents = UnexpectedEvents(); if (predicate.Invoke(unexpectedEvents)) { T exception = exceptionSupplier.Invoke(new DefaultConflictDescription(_aggregateIdentifier, _expectedVersion, _actualVersion, unexpectedEvents)); if (exception != null) { throw exception; } } }
public void DetectConflicts <T>(Predicate <List <IDomainEventMessage> > predicate, ContextAwareConflictExceptionSupplier <T> exceptionSupplier) where T : Exception { }