public async Task <string> SolicitarRecuperacaoSenha(string login)
        {
            var usuario     = repositorioUsuario.ObterPorCodigoRfLogin(null, login);
            var usuarioCore = await servicoEOL.ObterMeusDados(login);

            if (usuarioCore == null)
            {
                throw new NegocioException("Usuário não encontrado.");
            }

            if (usuario == null)
            {
                usuario = servicoUsuario.ObterUsuarioPorCodigoRfLoginOuAdiciona(usuarioCore.CodigoRf, null, usuarioCore.Nome, usuarioCore.Email);
            }

            if (usuario.Perfis == null || !usuario.Perfis.Any())
            {
                await servicoEOL.RelecionarUsuarioPerfis(login);
            }

            usuario.DefinirPerfis(await servicoUsuario.ObterPerfisUsuario(login));
            usuario.DefinirEmail(usuarioCore.Email);
            usuario.IniciarRecuperacaoDeSenha();
            repositorioUsuario.Salvar(usuario);
            EnviarEmailRecuperacao(usuario, usuarioCore.Email);
            return(usuarioCore.Email);
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> ListarPerfisUsuario(string login, [FromServices] IServicoUsuario servicoUsuario)
        {
            var retorno = await servicoUsuario.ObterPerfisUsuario(login);

            if (retorno == null || !retorno.Any())
            {
                return(NoContent());
            }

            return(Ok(retorno));
        }