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));
        }
Exemplo n.º 2
0
 public async Task Handle(ClienteCriadoDomainEvent notification, CancellationToken cancellationToken)
 {
     var integrationEvent = new ClienteCriadoIntegrationEvent(notification.Id, notification.CPF, notification.Nome);
     await _clienteIntegrationEventService.PublishEventsThroughEventBusAsync(integrationEvent);
 }