コード例 #1
0
        public async Task <bool> Handle(FinalizarPedidoCommand message, CancellationToken cancellationToken)
        {
            var pedido = await _pedidoRepository.ObterPorId(message.PedidoId);

            if (pedido == null)
            {
                await _mediatorHandler.PublicarNotificacao(new DomainNotification("pedido", "Pedido não encontrado"));
            }

            pedido.FinalizarPedido();

            pedido.AdicionarEvento(new PedidoFinalizadoEvent(message.PedidoId));
            return(await _pedidoRepository.UnitOfWork.Commit());
        }
コード例 #2
0
        public async Task <bool> Handle(FinalizarPedidoCommand message, CancellationToken cancellationToken)
        {
            var pedido = await _IPedidoRepository.ObterPorId(message.PedidoId);

            if (pedido == null)
            {
                await _IMediateHandler.PublicarNotificacao(new DomainNotification("pedido", "Pedido não encontrado!"));

                return(false);
            }

            pedido.FinalizarPedido();
            // aqui eu poderia também gerar nota fiscal
            pedido.AdicionarEvento(new PedidoFinalizadoEvent(message.PedidoId));
            // eu nã precisaria chamar o atualizar pedido pois ao alterar o status de pagamento dele e rodando o commit o proprio EF atualizaria minha entidade
            _IPedidoRepository.Atualizar(pedido);
            return(await _IPedidoRepository.IUnitOfWork.Commit());
        }