private async Task PublicarEventoAlteracaoDoCadastro(string clienteId, CadastroViewModel input) { var cadastroEvent = new CadastroEvent (clienteId, input.Nome, input.Email, input.Telefone , input.Endereco, input.Complemento, input.Bairro , input.Municipio, input.UF, input.CEP); await _bus.Publish(cadastroEvent); _logger.LogInformation(eventId: EventId_Registry, message: "Evento de Cadastro foi enviado: {RegistryEvent}", args: cadastroEvent); }
public async Task <ActionResult <bool> > Checkout(string clienteId, [FromBody] CadastroViewModel input) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } CarrinhoCliente carrinho; try { carrinho = await _repository.GetCarrinhoAsync(clienteId); } catch (KeyNotFoundException) { return(NotFound()); } var itens = carrinho.Itens.Select(i => new CheckoutEventItem(i.Id, i.ProdutoId, i.ProdutoNome, i.PrecoUnitario, i.Quantidade)).ToList(); var checkoutEvent = new CheckoutEvent (clienteId, input.Nome, input.Email, input.Telefone , input.Endereco, input.Complemento, input.Bairro , input.Municipio, input.UF, input.CEP , Guid.NewGuid() , itens); // Assim que fazemos a finalização, envia um evento de integração para // API OrdemDeCompra converter o carrinho em pedido e continuar com // processo de criação de pedido await _bus.Publish(checkoutEvent); var cadastroEvent = new CadastroEvent (clienteId, input.Nome, input.Email, input.Telefone , input.Endereco, input.Complemento, input.Bairro , input.Municipio, input.UF, input.CEP); await _bus.Publish(cadastroEvent); await _repository.DeleteCarrinhoAsync(clienteId); return(Accepted(true)); }