예제 #1
0
        /// <summary>
        /// Método para validar os processos para alterar a senha de um usuário
        /// </summary>
        /// <param name="_command">Comando de alteração do usuário</param>
        /// <returns>Dados salvos ou erros gerados</returns>
        public ICommandResult Handle(AlterarSenhaCommand _command)
        {
            //1º - Validando se o command recebido é válido
            _command.Validar();

            //Caso seja inválido, recebemos quando são os valores incorretos identificados por ele
            if (_command.Invalid)
            {
                return(new GenericCommandResult(false, "Informe os dados corretamente", _command.Notifications));
            }

            //2º - Verificando se o email de usuário pertence a nossa base de dados
            var _emailUsuarioExistente = _repository.BuscarUsuarioPorEmail(_command.Email);

            //Caso o email não exista, informe ao usuário que o usuário informado não existe
            if (_emailUsuarioExistente == null)
            {
                return(new GenericCommandResult(false, "Conta de email não encontrada, informe um e-mail cadastrado", _command.Notifications));
            }

            //3º - Enviando um email de confirmação da nova senha
            _ = SendEmailGrid.EnviarEmail(_emailUsuarioExistente.Email, _emailUsuarioExistente.Nome, "Confirmação de alteração de senha", "Senha alterada com sucesso!", "Conforme a solicitação da alteração de senha, confirmamos que sua senha foi alterada com sucesso, faça o login na plataforma inserindo os novos dados, muito obrigado!", null);

            //4º - Encriptografando a nova senha
            _command.Senha = HashDeSenha.EncriptografarSenha(_command.Senha);

            //5º - Passando para o objeto alterar os seus dados
            _emailUsuarioExistente.AlterarSenha(_command.Senha);

            //6º - Salvando os dados na base de dados
            _repository.AlterarUsuario(_emailUsuarioExistente);

            //Caso não haja erros, alteramos as informações
            return(new GenericCommandResult(true, "Senha alterada com sucesso", _emailUsuarioExistente));
        }
        /// <summary>
        /// Método para validar os processos para adicionar o telefone de usuário
        /// </summary>
        /// <param name="_command">Comando de autenticação do usuário</param>
        /// <returns>Dados salvos ou erros gerados</returns>
        public ICommandResult Handle(AdicionarTelefoneCommand _command)
        {
            //1º - Validando se o command recebido é válido
            _command.Validar();

            //Caso seja inválido, recebemos quando são os valores incorretos identificados por ele
            if (_command.Invalid)
            {
                return(new GenericCommandResult(false, "Informe os dados corretamente", _command.Notifications));
            }

            //2º - Validando se o usuário existe
            Usuario _usuarioExistente = _repository.BuscarUsuarioPorId(_command.IdUsuario);

            //Caso o usuário não exista, informamos a mensagem de erro
            if (_usuarioExistente == null)
            {
                return(new GenericCommandResult(false, "Usuário não encontrado", _command.Notifications));
            }

            //3º - Verificando se o usuário procurado não possui um telefone cadastrado
            if (_usuarioExistente.Telefone != null)
            {
                return(new GenericCommandResult(false, "Usuário já possui um telefone cadastrado", _usuarioExistente));
            }

            //4º - Alterando usuário
            _usuarioExistente.AdicionarTelefone(_command.Telefone);

            //5º - Salvando as alterações no banco de dados
            _repository.AlterarUsuario(_usuarioExistente);

            //Caso não haja erro, adicionamos o telefone ao usuário
            return(new GenericCommandResult(true, "Telefone adicionado com sucesso", _usuarioExistente));
        }
예제 #3
0
        /// <summary>
        /// Método para validar os processos para alterar um usuário
        /// </summary>
        /// <param name="_command">Comando de alteração do usuário</param>
        /// <returns>Dados salvos ou erros gerados</returns>
        public ICommandResult Handle(AlterarUsuarioCommand _command)
        {
            //1º - Validando se o command recebido é válido
            _command.Validar();

            //Caso seja inválido, recebemos quando são os valores incorretos identificados por ele
            if (_command.Invalid)
            {
                return(new GenericCommandResult(false, "Informe os dados corretamente", _command.Notifications));
            }

            //2º - Verificando se o email de usuário pertence a nossa base de dados
            var _emailUsuarioExistente = _repository.BuscarUsuarioPorEmail(_command.Email);

            //Caso o email não exista, informe ao usuário que o usuário informado não existe
            if (_emailUsuarioExistente == null)
            {
                return(new GenericCommandResult(false, "Conta de email não encontrada, informe um e-mail cadastrado", _command.Notifications));
            }

            //3º - Verificando se o novo email não está repetido com os armazenados na base de dados
            if (_command.Email != _emailUsuarioExistente.Email)
            {
                //Buscando o email no banco de dados
                var _novoEmailExistente = _repository.BuscarUsuarioPorEmail(_command.Email);

                //Verificando se há usuários utilizando o novo email informado
                if (_novoEmailExistente != null)
                {
                    return(new GenericCommandResult(false, "Este e-mail já está vinculado a uma conta, informe outro email", _command.Notifications));
                }
            }

            //4º - Atribuir ao objeto usuário a alteração dos dados do mesmo
            _emailUsuarioExistente.AlterarUsuario(_command.Nome, _command.Email);

            //5º - Verificar se um novo número de telefone foi adicionado
            if (!string.IsNullOrEmpty(_command.Telefone))
            {
                //Caso um novo número de telefone seja informado, alteramos a informação
                _emailUsuarioExistente.AdicionarTelefone(_command.Telefone);
            }

            //6º - Verificando se as alterações não contém erros para salvarmos
            if (_emailUsuarioExistente.Invalid)
            {
                return(new GenericCommandResult(false, "Dados inválidos", _command.Notifications));
            }

            //7º - Salvando as informações na base de dados
            _repository.AlterarUsuario(_emailUsuarioExistente);

            //Caso esteja tudo certo, alteramos o usuário com os novos dados
            return(new GenericCommandResult(true, "Dados alterados com sucesso", _emailUsuarioExistente));
        }
        /// <summary>
        /// Método para validar os processos para resetar a senha do usuário
        /// </summary>
        /// <param name="_command">Comando de resetar a senha do usuário</param>
        /// <returns>Dados salvos ou erros gerados</returns>
        public ICommandResult Handle(EsqueciSenhaCommand _command)
        {
            //1º - Validando se o command recebido é válido
            _command.Validar();

            //Caso seja inválido, recebemos quando são os valores incorretos identificados por ele
            if (_command.Invalid)
            {
                return(new GenericCommandResult(false, "Informe os dados corretamente", _command.Notifications));
            }

            //2º - Verificando se o email de usuário pertence a nossa base de dados
            var _usuarioExistente = _repository.BuscarUsuarioPorEmail(_command.Email);

            //Caso o email não exista, informe ao usuário que o email informado já está em uso
            if (_usuarioExistente == null)
            {
                return(new GenericCommandResult(false, "E-mail não cadastrado, informe um e-mail válido", _command.Notifications));
            }

            //3º - Gerando uma nova senha para o usuário
            var _novaSenha = RandomPassword.GeradorDeSenha();

            //4º - Enviando a nova senha gerada para o email
            _ = SendEmailGrid.EnviarEmail(_usuarioExistente.Email, _usuarioExistente.Nome, "Confirmação de nova senha", "Senha alterada com sucesso!", $"Conforme a solicitação da alteração de senha, nos da plataforma CodeTur disponibizamos uma nova senha para você, faça o login na plataforma inserindo os novos dados e sinta-se a vontade para altera-lá quando precisar, muito obrigado!<br><br>Sua nova senha é: ", _novaSenha);

            //5º - Encriptografando a nova senha
            var _novaSenhaEncriptografada = HashDeSenha.EncriptografarSenha(_novaSenha);

            //6º - Salvar a nova senha no banco de dados
            _usuarioExistente.AlterarSenha(_novaSenhaEncriptografada);

            //7º - Salvando novos dados na base de dados
            _repository.AlterarUsuario(_usuarioExistente);

            //Caso não haja erros, alteramos a senha do usuario
            return(new GenericCommandResult(true, "Nova senha gerada com sucesso", _novaSenha));
        }
예제 #5
0
 public void AlterarUsuario(UsuarioDTO usuarioDTO)
 {
     _usuarioRepository.AlterarUsuario(usuarioDTO);
 }
예제 #6
0
 public IActionResult AlterarUsuario(UsuarioModel usuarioModel)
 {
     _usuarioRepository.AlterarUsuario(usuarioModel);
     return(Ok());
 }