public async Task <AutenticarClienteCommandResult> Handle(AutenticarClienteCommand request, CancellationToken cancellationToken) { var senhaCriptografada = request.Senha.Criptografar(); var cliente = await _clienteRepositorio.ObterClientePorCredenciaisAsync(request.Documento, senhaCriptografada, cancellationToken); if (cliente == null) { throw new ClienteNaoAutenticadoException("Usuário ou senha incorreto."); } var contaCorrente = await _contaCorrenteRepositorio.ObterContaPorDocumentoAsync(cliente.Documento, cancellationToken); if (contaCorrente == null) { throw new ClienteNaoPossuiContaCorrenteException("Cliente não possuí conta corrente, favor cadastrar."); } return(new AutenticarClienteCommandResult { IdentificadorConta = contaCorrente.IdentificadorConta, }); }