Esempio n. 1
0
        private void AtualizarPosicaoDoCliente(PedidoAdicionado @event)
        {
            var posicao = dados.RecuperarPosicaoDoCliente(@event.ClienteId);

            posicao.QuantidadeDePedidos++;
            posicao.TotalDosPedidos   += @event.Total;
            posicao.DataDoUltimoPedido = @event.Data;
        }
Esempio n. 2
0
 private void AdicionarPedidoRealizado(PedidoAdicionado @event)
 {
     this.dados.Adicionar(new PedidoRealizado()
     {
         ClienteId            = @event.ClienteId,
         Data                 = @event.Data,
         PedidoId             = @event.PedidoId,
         Total                = @event.Total,
         NomeDaTransportadora = @event.Transportadora
     });
 }
Esempio n. 3
0
        private void AtualizarEstoqueDaVitrine(PedidoAdicionado @event)
        {
            foreach (var item in @event.ProdutosComprados)
            {
                var produto = dados.RecuperarProdutoPor(item.Key);

                if (produto != null)
                {
                    produto.QuantidadeEmEstoque -= item.Value;
                }
            }
        }
Esempio n. 4
0
        public void Handle(PedidoAdicionado message)
        {
            var mensagem =
                string.Format(
                    "O seu pedido de número <b>{0}</b> no total de <b>{1:N2}</b> foi criado com sucesso em nossa base de dados, " +
                    "e aguarda a aprovação da operadora de cartão de crédito.",
                    message.PedidoId.ToString().ToUpper(),
                    message.Total);

            this.notificador.Send(
                "*****@*****.**", message.EmailDoCliente, "Novo Pedido", mensagem);
        }
Esempio n. 5
0
 public void Handle(PedidoAdicionado message)
 {
     AtualizarPosicaoDoCliente(message);
     AdicionarPedidoRealizado(message);
     AtualizarEstoqueDaVitrine(message);
 }