public DomainEventAwareDbContext( DbContextOptions options, IDomainEventManager domainEventManager, ILogger <DomainEventAwareDbContext> logger ) : this(options) { _domainEventManager = domainEventManager; _logger = logger; }
internal static async Task DispatchDomainEventsAsync(this IDomainEventManager domainEventManager, DomainEventAwareDbContext ctx) { var domainEntities = ctx.ChangeTracker .Entries <IEntity>() .Where(x => x.Entity.DomainEvents != null && x.Entity.DomainEvents.Any()) .ToList(); var domainEvents = domainEntities .SelectMany(x => x.Entity.DomainEvents) .ToList(); domainEntities .ForEach(entity => entity.Entity.ClearDomainEvents()); foreach (var domainEvent in domainEvents) { await domainEventManager.Publish(domainEvent).ConfigureAwait(false); } }
public EventBehavior(IDomainEventManager eventManager, IMediator mediator, ILogger <TRequest> logger) { _eventManager = eventManager; _mediator = mediator; _logger = logger; }
public PublishReleaseHandler(IApplicationDbContext db, IDomainEventManager eventManager) { _db = db; _eventManager = eventManager; }
public ValidationBehaviour(IDomainEventManager domainEventManager) => _domainEventManager = domainEventManager;
public UniversityDbContext(DbContextOptions <UniversityDbContext> options, IDomainEventManager domainEventManager, ILogger <UniversityDbContext> logger) : base(options, domainEventManager, logger) { }