コード例 #1
0
        public ActionResult MeusDados(ModeloDeEdicaoDeUsuario modelo)
        {
            var retorno = this._servicoDeGestaoDeUsuarios.EditarMeusDados(modelo, User.Logado());

            this.AdicionarMensagemDeSucesso(retorno);
            return(RedirectToAction(nameof(MeusDados)));
        }
コード例 #2
0
        public string EditarMeusDados(ModeloDeEdicaoDeUsuario modelo, UsuarioLogado usuario)
        {
            try
            {
                var usuarioParaAlterar = this._servicoExternoDePersistencia.RepositorioDeUsuarios.BuscarPorId(usuario.Id);

                if (usuarioParaAlterar.Login.Valor != modelo.Email)
                {
                    var usuarioComMesmoLogin = this._servicoExternoDePersistencia.RepositorioDeUsuarios.PegarAtivoPorLogin(modelo.Email);

                    if (usuarioComMesmoLogin != null)
                    {
                        throw new ExcecaoDeAplicacao("Já existe um usuário com o mesmo login");
                    }
                }
                var batalhao = this._servicoExternoDePersistencia.RepositorioDeBatalhoes.PegarPorId(modelo.Batalhao);

                usuarioParaAlterar.AlterarMeusDados(modelo.Nome, modelo.Email, modelo.Ddd, modelo.Telefone, batalhao, modelo.Matricula);
                this._servicoExternoDePersistencia.Persistir();

                return("Meus dados alterado com sucesso.");
            }
            catch (Exception ex)
            {
                throw new ExcecaoDeAplicacao(ex.Message);
            }
        }
コード例 #3
0
        public ActionResult AlterarSenhaRenovacao(ModeloDeEdicaoDeUsuario modelo)
        {
            var retorno = this._servicoDeGestaoDeUsuarios.AlterarSenhaRenovacao(modelo);

            this.AdicionarMensagemDeSucesso(retorno);
            return(RedirectToAction(nameof(Index), "Login"));
        }
コード例 #4
0
        public string AlterarSenhaRenovacao(ModeloDeEdicaoDeUsuario modelo)
        {
            if (modelo.Senha != modelo.RepetirSenha)
            {
                throw new ExcecaoDeAplicacao("As senhas são diferentes.");
            }

            var usuarioParaAlterar = this._servicoExternoDePersistencia.RepositorioDeUsuarios.BuscarPorId(modelo.Id);
            var senha = new Senha(modelo.Senha, _servicoDeGeracaoDeHashSha.GerarHash);

            usuarioParaAlterar.AlterarSenha(senha);
            this._servicoExternoDePersistencia.Persistir();
            return("Senha alterada com sucesso.");
        }
コード例 #5
0
        public ActionResult EditarPerfil(ModeloDeEdicaoDeUsuario modelo)
        {
            if (User.EhInterno() && User.EhUsuario())
            {
                return(UsuarioSemPermissao());
            }

            var retorno = this._servicoDeGestaoDeUsuarios.AlterarPerfilDoUsuario(modelo, User.Logado());

            modelo.Batalhoes = ListaDeItensDeDominio.DaClasseComOpcaoPadrao <Batalhao>(nameof(Batalhao.Sigla), nameof(Batalhao.Id),
                                                                                       () => this._servicoDeGestaoDeBatalhoes.RetonarTodosOsBatalhoesAtivos());

            this.AdicionarMensagemDeSucesso(retorno);
            return(RedirectToAction(nameof(Index)));
        }
コード例 #6
0
        public string AlterarDadosDoUsuario(ModeloDeEdicaoDeUsuario modelo, UsuarioLogado usuario)
        {
            try
            {
                var batalhao           = this._servicoExternoDePersistencia.RepositorioDeBatalhoes.PegarPorId(modelo.Batalhao);
                var usuarioParaAlterar = this._servicoExternoDePersistencia.RepositorioDeUsuarios.BuscarPorId(modelo.Id);
                usuarioParaAlterar.AlterarDados(modelo.Nome, modelo.Email, modelo.Ativo, modelo.PerfilDeUsuario, batalhao, modelo.Matricula);
                this._servicoExternoDePersistencia.Persistir();

                return("Usuário alterado com sucesso.");
            }
            catch (Exception ex)
            {
                throw new ExcecaoDeAplicacao(ex.Message);
            }
        }
コード例 #7
0
        public Tuple <string, bool> AlterarSenha(ModeloDeEdicaoDeUsuario modelo, UsuarioLogado usuario)
        {
            if (modelo.Senha != modelo.RepetirSenha)
            {
                throw new ExcecaoDeAplicacao("As senhas são diferentes.");
            }

            var verificaUsuario = usuario.Id == modelo.Id ? true : false;

            var usuarioParaAlterar = this._servicoExternoDePersistencia.RepositorioDeUsuarios.BuscarPorId(modelo.Id);
            var senha = new Senha(modelo.Senha, _servicoDeGeracaoDeHashSha.GerarHash);

            usuarioParaAlterar.AlterarSenha(senha);
            this._servicoExternoDePersistencia.Persistir();
            return(new Tuple <string, bool>("Senha alterada com sucesso.", verificaUsuario));
        }
コード例 #8
0
        public string AlterarPerfilDoUsuario(ModeloDeEdicaoDeUsuario modelo, UsuarioLogado usuario)
        {
            try
            {
                var usuarioBanco       = this._servicoExternoDePersistencia.RepositorioDeUsuarios.BuscarPorId(usuario.Id);
                var usuarioParaAlterar = this._servicoExternoDePersistencia.RepositorioDeUsuarios.BuscarPorId(modelo.Id);
                usuarioParaAlterar.AlterarPerfil(modelo.PerfilDeUsuario, usuarioBanco.Id);

                this._servicoExternoDePersistencia.Persistir();

                return("Usuário alterado com sucesso.");
            }
            catch (Exception ex)
            {
                throw new ExcecaoDeAplicacao(ex.Message);
            }
        }
コード例 #9
0
        public ActionResult AlterarSenha(ModeloDeEdicaoDeUsuario modelo)
        {
            if (User.EhInterno() && User.EhUsuario())
            {
                return(UsuarioSemPermissao());
            }

            var retorno = this._servicoDeGestaoDeUsuarios.AlterarSenha(modelo, User.Logado());

            this.AdicionarMensagemDeSucesso(retorno.Item1);
            if (retorno.Item2)
            {
                return(RedirectToAction(nameof(MeusDados)));
            }
            else
            {
                return(RedirectToAction(nameof(Editar), new { id = modelo.Id }));
            }
        }
コード例 #10
0
        public ModeloDeEdicaoDeUsuario ValidarTokenRetornarUsuario(string token)
        {
            var tokenDescriptografado = this._servicoDeCriptografia.Decriptar(token);

            var tokenDividido = tokenDescriptografado.Split(new char[] { '#', '#' }, StringSplitOptions.RemoveEmptyEntries);

            if (tokenDividido.Length != 2)
            {
                throw new ExcecaoDeAplicacao("Token inválido");
            }

            var usuario = this._servicoExternoDePersistencia.RepositorioDeUsuarios.PegarAtivoPorLogin(tokenDividido[0]);

            if (usuario == null)
            {
                return(new ModeloDeEdicaoDeUsuario());

                throw new ExcecaoDeAplicacao("Usuário não encontrado.");
            }

            var modelo = new ModeloDeEdicaoDeUsuario(usuario);

            return(modelo);
        }