public async Task <bool> Commit()
        {
            foreach (var entry in ChangeTracker.Entries()
                     .Where(entry => entry.Entity.GetType().GetProperty("DataCadastro") != null))
            {
                if (entry.State == EntityState.Added)
                {
                    entry.Property("DataCadastro").CurrentValue = DateTime.Now;
                }

                if (entry.State == EntityState.Modified)
                {
                    entry.Property("DataCadastro").IsModified = false;
                }
            }


            var sucesso = await base.SaveChangesAsync() > 0;

            if (sucesso)
            {
                await _mediatorHandler.PublicarEventos(this);
            }

            return(sucesso);
        }
        public async Task <int> Commit(CancellationToken cancellationToken = default)
        {
            foreach (var entry in ChangeTracker.Entries().Where(entry => entry.Entity.GetType().GetProperty("DataCriacao") != null))
            {
                if (entry.State == EntityState.Added)
                {
                    entry.Property("DataCriacao").CurrentValue = DateTime.UtcNow;
                    entry.Property("DataAlteracao").IsModified = false;
                }

                if (entry.State == EntityState.Modified)
                {
                    entry.Property("DataAlteracao").CurrentValue = DateTime.UtcNow;
                    entry.Property("DataCriacao").IsModified     = false;
                }
            }

            int result = await base.SaveChangesAsync();

            if (result > 0)
            {
                await _mediatorHandler.PublicarEventos(this);
            }

            return(result);
        }
        public async Task <bool> Commit()
        {
            var sucesso = await base.SaveChangesAsync() > 0;

            if (sucesso)
            {
                await _mediatorHandler.PublicarEventos(this);
            }
            return(sucesso);
        }
Ejemplo n.º 4
0
        public virtual async Task <bool> Commit()
        {
            var executado = await base.SaveChangesAsync() > 0;

            if (executado)
            {
                await _mediator.PublicarEventos(this);
            }

            return(executado);
        }
Ejemplo n.º 5
0
        public async Task <bool> Commit()
        {
            var sucesso = await SaveChangesAsync() > 0;

            if (!sucesso)
            {
                return(false);
            }

            await _mediatorHandler.PublicarEventos(this);

            return(true);
        }
Ejemplo n.º 6
0
        public static async Task PublicarEventos <T>(this IMediatorHandler mediator, T ctx) where T : DbContext
        {
            var domainEntities = ctx.ChangeTracker
                                 .Entries <Entity>()
                                 .Where(x => x.Entity.Notificacoes != null && x.Entity.Notificacoes.Any());

            var domainEvents = domainEntities
                               .SelectMany(x => x.Entity.Notificacoes)
                               .ToList();

            domainEntities.ToList()
            .ForEach(entity => entity.Entity.LimparEventos());

            var tasks = domainEvents
                        .Select(async(domainEvent) => {
                await mediator.PublicarEventos(domainEvent);
            });

            await Task.WhenAll(tasks);
        }