private async Task AlterarEmail(Usuario usuario, string novoEmail)
        {
            var outrosUsuariosComMesmoEmail = await servicoEOL.ExisteUsuarioComMesmoEmail(usuario.Login, novoEmail);

            if (outrosUsuariosComMesmoEmail)
            {
                throw new NegocioException("Já existe outro usuário com o e-mail informado.");
            }

            var retornoEol = await servicoEOL.ObterPerfisPorLogin(usuario.Login);

            if (retornoEol == null || retornoEol.Status != AutenticacaoStatusEol.Ok)
            {
                throw new NegocioException("Ocorreu um erro ao obter os dados do usuário no EOL.");
            }

            if (retornoEol.Perfis == null || !retornoEol.Perfis.Any())
            {
                //pode ser que esse usuário não tenha se logado ainda no sistema, realizar chamada para o serviço de relacionar grupos
                retornoEol = await servicoEOL.RelecionarUsuarioPerfis(usuario.Login);

                if (retornoEol == null || !retornoEol.Perfis.Any())
                {
                    throw new NegocioException("Não é possível alterar o e-mail deste usuário pois o mesmo está sem perfis de acesso.");
                }
            }
            var perfisUsuario = repositorioPrioridadePerfil.ObterPerfisPorIds(retornoEol.Perfis);

            usuario.DefinirPerfis(perfisUsuario);
            usuario.DefinirEmail(novoEmail);
            repositorioUsuario.Salvar(usuario);
            await servicoEOL.AlterarEmail(usuario.Login, novoEmail);
        }