public PagamentoService(IPagamentoCartaoCreditoFacade pagamentoCartaoCreditoFacade,
                         IPagamentoRepository pagamentoRepository,
                         IMediateHandler mediatorHandler)
 {
     _pagamentoCartaoCreditoFacade = pagamentoCartaoCreditoFacade;
     _pagamentoRepository          = pagamentoRepository;
     _mediatorHandler = mediatorHandler;
 }
 public CarrinhoController(IProdutoAppService produtoAppService,
                           INotificationHandler <DomainNotification> DomainNotificationHandler,
                           IMediateHandler IMediateHandler,
                           IPedidoQueries IPedidoQueries)
     : base(DomainNotificationHandler, IMediateHandler)
 {
     _produtoAppService = produtoAppService;
     _IMediateHandler   = IMediateHandler;
     _IPedidoQueries    = IPedidoQueries;
 }
Example #3
0
        public static async Task PublicarEventos(this IMediateHandler mediator, PagamentoContext ctx)
        {
            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.LimparEvento());

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

            await Task.WhenAll(tasks);
        }
Example #4
0
        public static async Task PublicarEventos(this IMediateHandler mediator, VendasContext ctx)
        {
            // Ira pegar todas as minhas entidades que estiverem no meu change tracker onde minha entrada seja do tipo Entity
            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.LimparEvento());

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

            // esse await so vai voltar quando todos os meus eventos forem lançados

            await Task.WhenAll(tasks);
        }
Example #5
0
 protected ControllerBase(INotificationHandler <DomainNotification> DomainNotificationHandler, IMediateHandler IMediatorHandler)
 {
     _DomainNotificationHandler = (DomainNotificationHandler)DomainNotificationHandler;
     _IMediatorHandler          = IMediatorHandler;
 }
Example #6
0
 public EstoqueServices(IProdutoRepository produtoRepository, IMediateHandler mediatr)
 {
     _produtoRepository = produtoRepository;
     _mediatr           = mediatr;
 }
Example #7
0
 public PedidoCommandHandler(IPedidoRepository IPedidoRepository, IMediateHandler IMediateHandler)
 {
     _IPedidoRepository = IPedidoRepository;
     _IMediateHandler   = IMediateHandler;
 }
 public PedidoEventHandler(IMediateHandler mediatorHandler)
 {
     _mediatorHandler = mediatorHandler;
 }
 public VendasContext(DbContextOptions <VendasContext> options, IMediateHandler mediateHandler)
     : base(options)
 {
     _mediateHandler = mediateHandler;
 }
 public PedidoController(IPedidoQueries pedidoQueries,
                         INotificationHandler <DomainNotification> notifications,
                         IMediateHandler mediatorHandler) : base(notifications, mediatorHandler)
 {
     _pedidoQueries = pedidoQueries;
 }
 public PagamentoContext(DbContextOptions <PagamentoContext> options, IMediateHandler rebusHandler)
     : base(options)
 {
     _mediatorHandler = rebusHandler ?? throw new ArgumentNullException(nameof(rebusHandler));
 }