private async Task PublishBeforeAsync() { var validationEvents = Context.ChangeTracker.Entries().Select(a => a.Entity as TEntity).Where(e => e?.BeforeEvents?.Any() == true).SelectMany(a => a.BeforeEvents); foreach (var domainEvent in validationEvents) { await _mediator.PublishAsync(domainEvent); } }