public JsonResult Editar(UsuarioViewModelEdicao usuarioModel)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    UsuarioPersistence up = new UsuarioPersistence();
                    Usuario            u  = up.ObterPorId(usuarioModel.Id_Usuario);

                    u.Nome     = usuarioModel.Nome;
                    u.IdPerfil = usuarioModel.Id_Perfil;

                    if (usuarioModel.RedefinirSenha)
                    {
                        u.Senha = Criptografia.EncriptarSenha("ABC123");
                    }

                    up.Atualizar(u);
                    mensagem = $"Os dados do usuário {usuarioModel.Nome} foram editados com sucesso!";
                }
            }
            catch (Exception ex)
            {
                return(Json(new { msg = ex.Message.ToString() }));
            }

            return(Json(new { msg = mensagem }));
        }
        public ActionResult Edicao(string id)
        {
            UsuarioPersistence     up    = new UsuarioPersistence();
            UsuarioViewModelEdicao model = new UsuarioViewModelEdicao();

            var usuario = up.ObterPorId(id);

            model.Id_Usuario = usuario.IdUsuario;
            model.Nome       = usuario.Nome;
            model.Id_Perfil  = usuario.IdPerfil;

            PerfilPersistence pp = new PerfilPersistence();

            ViewBag.ListaPerfis = new SelectList(pp.ListarTodos().ToList(), "Id", "Descricao");

            return(View(model));
        }
        public ActionResult Edicao(UsuarioViewModelEdicao model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    usuarioRepository.BeginTransaction();

                    Usuario u = usuarioRepository.ObterPorId(model.IdUsuario);

                    u.Nome  = model.Nome;
                    u.Email = model.Email.ToUpper();
                    u.Senha = criptografia.EncriptarSenha(model.Senha);
                    u.Ativo = model.Ativo;


                    if (usuarioRepository.EmailExistente(u.Email, u.IdUsuario))
                    {
                        throw new CustomException("Já existe um cadastro com este email.");
                    }

                    usuarioRepository.Atualizar(u);

                    usuarioRepository.Commit();

                    ModelState.Clear();

                    ViewBag.MsgSucesso = "Cadastro atualizado com sucesso.";
                }
                catch (Exception e)
                {
                    usuarioRepository.Rollback();
                    ViewBag.MsgErro = e.Message;
                }
            }

            return(View(MontarUsuario(model.IdUsuario)));
        }
        public UsuarioViewModelEdicao MontarUsuario(int id)
        {
            UsuarioViewModelEdicao model = new UsuarioViewModelEdicao();

            try
            {
                Usuario u = usuarioRepository.ObterPorId(id);

                model.IdUsuario    = u.IdUsuario;
                model.Nome         = u.Nome;
                model.Email        = u.Email;
                model.DataCadastro = u.DataCadastro;
                model.Ativo        = u.Ativo;
            } catch (Exception e)
            {
            }
            finally
            {
                usuarioRepository.Dispose();
            }

            return(model);
        }