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 JsonResult Incluir(UsuarioViewModelInclusao usuarioModel)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    UsuarioPersistence up = new UsuarioPersistence();

                    if (up.LoginExistente(usuarioModel.Id_Usuario) > 0)
                    {
                        mensagem = "O Login informado já existe";
                    }
                    else
                    {
                        Usuario u = new Usuario();

                        u.IdUsuario = usuarioModel.Id_Usuario;
                        u.Nome      = usuarioModel.Nome;
                        u.Senha     = Criptografia.EncriptarSenha("ABC123");
                        u.IdPerfil  = usuarioModel.Id_Perfil;

                        up.Inserir(u);
                        mensagem = $"Os dados do usuário {usuarioModel.Nome} foram gravados com sucesso!";
                    }
                }
            }
            catch (Exception ex)
            {
                mensagem = ex.Message.ToString();
            }

            return(Json(new { msg = mensagem }));
        }
        public ActionResult AlterarSenha(RedefinirSenhaViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    UsuarioPersistence up = new UsuarioPersistence();
                    Usuario            u  = up.ObterPorId(model.Login);
                    u.Senha = Criptografia.EncriptarSenha(model.Senha);
                    up.Atualizar(u);
                    ViewBag.Mensagem = u.Nome;

                    //destrói o tícket de acesso do usuário..
                    FormsAuthentication.SignOut();
                    //apaga a sessão do usuário..
                    Session.Remove("Usuario");

                    return(View("MensagemRedefinirSenha"));
                }
            }
            catch (Exception e)
            {
                ViewBag.Mensagem = e.Message.ToString();
            }

            return(View("RedefinirSenha"));
        }
        public void LoginExistente()
        {
            UsuarioPersistence up = new UsuarioPersistence();

            int i = up.LoginExistente("TSRV");

            Assert.IsTrue(i == 1);
        }
        public void ObterLoginSenha()
        {
            UsuarioPersistence up = new UsuarioPersistence();

            Usuario u = up.ObterLoginSenha("B9GY", Criptografia.EncriptarSenha("ABC123"));

            Assert.IsTrue(u != null);
        }
        public void ListarTodos()
        {
            UsuarioPersistence up = new UsuarioPersistence();

            List <Usuario> lista = up.ListarTodos();

            Assert.IsTrue(lista.Count == 5);
            Assert.IsFalse(lista.Count == 0);
        }
        public void Excluir()
        {
            UsuarioPersistence up = new UsuarioPersistence();

            Usuario u = up.ObterPorId("B9GY");

            int i = up.Excluir(u);

            Assert.IsTrue(i == 1);
        }
        public JsonResult Consultar()
        {
            //string sSearche = Request.Params["sSearch"].ToString();
            string sBusca  = Request.Params["sBusca"].ToString().ToUpper();
            string sPerfil = Request.Params["sPerfil"].ToString();
            string sStatus = Request.Params["sStatus"].ToString();


            UsuarioPersistence    up             = new UsuarioPersistence();
            IEnumerable <Usuario> totalUsuarios  = up.ListarTodos();
            IList <Usuario>       filtroUsuarios = totalUsuarios.ToList <Usuario>();

            if (sBusca != null)
            {
                filtroUsuarios = filtroUsuarios
                                 .Where(u =>
                                        (u.IdUsuario.ToUpper().Contains(sBusca.ToUpper())) ||
                                        (u.Nome.ToString().ToUpper().Contains(sBusca.ToUpper()))
                                        ).ToList <Usuario>();
            }

            if (sPerfil != "-1")
            {
                filtroUsuarios = filtroUsuarios
                                 .Where(u => u.Perfil.Id.ToString().Contains(sPerfil.ToUpper())
                                        ).ToList <Usuario>();
            }

            if (sStatus != "-1")
            {
                filtroUsuarios = filtroUsuarios
                                 .Where(u => u.Status.ToString().Contains(sStatus.ToUpper())
                                        ).ToList <Usuario>();
            }

            List <UsuarioViewModelConsulta> lista = new List <UsuarioViewModelConsulta>();

            foreach (var item in filtroUsuarios)
            {
                UsuarioViewModelConsulta u = new UsuarioViewModelConsulta();
                u.IdUsuario = item.IdUsuario;
                u.Nome      = item.Nome;
                u.Perfil    = item.Perfil.Descricao;
                u.Status    = item.Status;

                lista.Add(u);
            }

            var Resultado = new
            {
                aaData = lista
            };

            return(Json(Resultado, JsonRequestBehavior.AllowGet));
        }
        public void Alterar()
        {
            UsuarioPersistence up = new UsuarioPersistence();

            Usuario u = up.ObterLoginSenha("B9GY", Criptografia.EncriptarSenha("ABC123"));

            u.Nome = "Jefferson Petrobras";

            int i = up.Atualizar(u);

            Assert.IsTrue(i == 1);
        }
        public void Adicionar()
        {
            Usuario u = new Usuario();

            u.IdUsuario = "B9GY";
            u.Nome      = "Jefferson Silva Tavares";
            u.Senha     = Criptografia.EncriptarSenha("ABC123");

            UsuarioPersistence up = new UsuarioPersistence();

            int i = up.Inserir(u);

            Assert.IsTrue(i > 0);
            Assert.IsFalse(i == 0);
        }
        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 JsonResult Excluir(string id)
        {
            try
            {
                UsuarioPersistence up = new UsuarioPersistence();
                Usuario            u  = up.ObterPorId(id);

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

            return(Json(new { msg = mensagem }));
        }
        public ActionResult AcessarSistema(LoginViewModel loginModel)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    UsuarioPersistence up = new UsuarioPersistence();
                    Usuario            u  = new Usuario();
                    u = up.ObterLoginSenha(loginModel.Login,
                                           Criptografia.EncriptarSenha(loginModel.Senha));

                    if (u != null)
                    {
                        if (u.Status.Equals("I"))
                        {
                            throw new Exception("Usuário Inativado." + "\n" + "Procure o Administrador do Sistema");
                        }

                        if (loginModel.Senha.ToUpper().Equals("ABC123"))
                        {
                            RedefinirSenhaViewModel model = new RedefinirSenhaViewModel();

                            model.Login = u.IdUsuario;
                            model.Nome  = u.Nome;

                            //não usei o RedirectToAction, porque:
                            //1-carrega na URL da página os valores do parâmetro da model
                            //2-faz a validação dos campos obrigatórios ao inicializar a página

                            //return RedirectToAction("RedefinirSenha", model);


                            //Navegar pela view, oculta os parâmetros da model..
                            return(View("RedefinirSenha", model));
                        }

                        //criando o tícket para dar acesso a aplicação..
                        FormsAuthenticationTicket ticket =
                            new FormsAuthenticationTicket(u.IdUsuario, false, 5);//cinco minutos de inatividade, retorna ao login..

                        //gravando o ticket em cookie do navegador..
                        HttpCookie cookie =
                            new HttpCookie(FormsAuthentication.FormsCookieName,
                                           FormsAuthentication.Encrypt(ticket));

                        //Gravando o cookie no navegador..
                        Response.Cookies.Add(cookie);

                        //gravando o objeto Usuario, seus perfis e menus em sessão..
                        Session.Add("Usuario", u);

                        //gravando os itens de menu..
                        //  Session.Add("Menu", u.Perfil.Menus.Where(m=>m.IdMenu.Equals(null)).ToList());


                        return(RedirectToAction("Index", "Index",
                                                new { area = "AreaIndex" }));
                    }

                    ViewBag.Mensagem = "Usuário/Senha Inválido";
                }
            }
            catch (Exception ex)
            {
                ViewBag.Mensagem = "Erro: " + ex.Message.ToString();
            }

            return(View("Login"));
        }