private void AtualizarPosicaoDoCliente(PedidoAdicionado @event) { var posicao = dados.RecuperarPosicaoDoCliente(@event.ClienteId); posicao.QuantidadeDePedidos++; posicao.TotalDosPedidos += @event.Total; posicao.DataDoUltimoPedido = @event.Data; }
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 }); }
private void AtualizarEstoqueDaVitrine(PedidoAdicionado @event) { foreach (var item in @event.ProdutosComprados) { var produto = dados.RecuperarProdutoPor(item.Key); if (produto != null) { produto.QuantidadeEmEstoque -= item.Value; } } }
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); }
public void Handle(PedidoAdicionado message) { AtualizarPosicaoDoCliente(message); AdicionarPedidoRealizado(message); AtualizarEstoqueDaVitrine(message); }