Exemplo n.º 1
0
        public static async Task DispatchDomainEventsAsync(this IMediator mediator, PlutoNetTemplateDbContext ctx, CancellationToken cancellationToken = default)
        {
            var domainEntities = ctx.ChangeTracker
                                 .Entries <BaseEntity>()
                                 .OfType <IDomainEvents>();
            var domainEvents = domainEntities
                               .SelectMany(x => x.DomainEvents)
                               .ToList();

            domainEntities
            .ToList()
            .ForEach(entity => entity.ClearDomainEvents());
            foreach (var domainEvent in domainEvents)
            {
                await mediator.Publish(domainEvent, cancellationToken);
            }
        }
 public PlutoNetCoreTemplateBaseRepository(PlutoNetTemplateDbContext dbContext) : base(dbContext)
 {
 }