public async Task <ClienteCadastroVM> CadastrarCliente(CadastrarClienteCommand cadastrarClienteCommand) { var telefone = new Telefone(cadastrarClienteCommand.DDI, cadastrarClienteCommand.DDD, cadastrarClienteCommand.NumeroTelefone, true); var endereco = new Endereco( cadastrarClienteCommand.CEP, cadastrarClienteCommand.Logradouro, cadastrarClienteCommand.NumeroEndereco, cadastrarClienteCommand.Complemento, true); var pessoa = new Pessoa(cadastrarClienteCommand.Nome, cadastrarClienteCommand.CPF, cadastrarClienteCommand.DataNascimento, telefone, endereco); var cliente = new Cliente(cadastrarClienteCommand.TipoClienteId, EStatusCliente.Ativo.Id, pessoa); await _clienteService.CadastrarCliente(cliente); _ = _clienteQueryRepository.Adicionar(new ClienteDocument(cliente)); var integrationEvent = new ClienteCriadoIntegrationEvent(cliente.Id, cliente.Pessoa.CPF, cliente.Pessoa.Nome); _ = _clienteIntegrationEventService.PublishEventsThroughEventBusAsync(integrationEvent); return(_mapper.Map <ClienteCadastroVM>(cliente)); }
public async Task Handle(ClienteCriadoDomainEvent notification, CancellationToken cancellationToken) { var integrationEvent = new ClienteCriadoIntegrationEvent(notification.Id, notification.CPF, notification.Nome); await _clienteIntegrationEventService.PublishEventsThroughEventBusAsync(integrationEvent); }