public async Task <ActionResult <ClienteViewModel> > PostCliente(ClienteViewModel cliente)
        {
            var mecanicoExiste = await _mecanicoServico.ExisteFiltroAsync(f => f.Login == cliente.Email);

            var clienteExiste = await _servico.ExisteFiltroAsync(f => f.Email == cliente.Email);

            if (mecanicoExiste == true || clienteExiste == true)
            {
                return(BadRequest(new { erro = "Email já exite!" }));
            }

            Random random       = new Random();
            int    randomNumber = random.Next(0, 10000);
            var    cliente2     = _mapper.Map <Cliente>(cliente);

            cliente2.Senha = randomNumber.ToString();

            cliente2 = await _servico.AdicionarAsync(cliente2);

            return(Ok(_mapper.Map <ClienteViewModel>(cliente2)));
        }
        public async Task <Resultado> Handle(CriarCliente request, CancellationToken cancellationToken)
        {
            var cliente = await _clienteServico.AdicionarAsync();

            try
            {
                //dispara evento
                await _bus.Publish(
                    new LancamentoCriado(cliente.Id, LancamentoTipo.DepositoInicial, cliente.ContaCorrente.Saldo,
                                         cliente.ContaCorrente.Numero, cliente.Nome,
                                         cliente.ContaCorrente.Numero, cliente.Nome, cliente.ContaCorrente.Saldo, TransacaoTipo.Credito));
            }
            catch (Exception ex)
            {
                _logger.LogError(string.Format("Ocorreu uma falha ao enviar o lancamento gerado. {0}", ex.Message));
                return(new Resultado(false, string.Format("Ocorreu uma falha ao enviar o lancamento gerado. {0}", ex.Message)));
            }

            _logger.LogInformation("Cliente criado com suceso.");
            return(new Resultado(true, "Cliente criado com sucesso."));
        }