public ActionResult Edit(Usuario u, Perfil p)
        {
            if (Roles.IsUserInRole(User.Identity.Name, "Administrador"))
            {
                ViewBag.idPerfil
                    = new SelectList(perfilModel.todosPerfis(),
                        "idPerfil", "Descricao", p);

                if (!validarUsuario(u))
                {
                    ViewBag.Erro = "Erro na validação do Usuario";
                    return View(u);
                }

                string erro = null;
                if (u.idUsuario == 0)
                {
                    erro = usuarioModel.adicionarUsuario(u);
                }
                else
                {
                    erro = usuarioModel.editarUsuario(u);
                }
                if (erro == null)
                {
                    return RedirectToAction("../endereco/Edit/0");
                }
                else
                {
                    ViewBag.Erro = erro;
                    return View(u);
                }
            }
            return Redirect("/Shared/Restrito");
        }
 public string excluirUsuario(Usuario u)
 {
     string erro = null;
     try
     {
         db.Usuario.DeleteObject(u);
         db.SaveChanges();
     }
     catch (Exception ex)
     {
         erro = ex.Message;
     }
     return erro;
 }
 public string adicionarUsuario(Usuario u)
 {
     string erro = null;
     try
     {
         db.Usuario.AddObject(u);
         db.SaveChanges();
     }
     catch (Exception ex)
     {
         erro = ex.Message;
     }
     return erro;
 }
 public string editarUsuario(Usuario u)
 {
     string erro = null;
     try
     {
         if (u.EntityState == System.Data.EntityState.Detached)
         {
             db.Usuario.Attach(u);
         }
         db.ObjectStateManager.ChangeObjectState(u, System.Data.EntityState.Modified);
         db.SaveChanges();
     }
     catch (Exception ex)
     {
         erro = ex.Message;
     }
     return erro;
 }
        public ActionResult Index(Usuario u)
        {
            Usuario banco = usuarioModel.obterUsuarioPorLogin(u.Login);
            if (banco == null || banco == new Usuario())
            {
                ViewBag.Erro = "Usuario Inexistente!";
                return View(u);
            }
            if (u.Senha != banco.Senha)
            {
                ViewBag.Erro = "Senha Incorreta!";
                return View(u);
            }

            Roles.DeleteCookie();
            // Passar perfis do banco para aplicação
            foreach (Perfil p in perfilModel.todosPerfis())
            {
                if (!Roles.RoleExists(p.Descricao))// Testa se a role nao existe
                {
                    Roles.CreateRole(p.Descricao);// adiciona a role
                }
            }

            //Adicionar perfis do usuarui a classe Role
            foreach (Perfil p in perfilModel.listarPerfisPorUsuario(banco.idUsuario))
            {
                // Testa se o usuario nao está na role associada ao banco
                if (!Roles.IsUserInRole(u.Login, p.Descricao))
                {
                    Roles.AddUserToRole(u.Login, p.Descricao); // adiciona o usuario
                }
            }

            //string login = User.Identity.Name;
            //Usuario usuario = usuarioModel.obterUsuarioPorLogin(login);

            //int idUsuarioAutenticado = usuario.idUsuario;
            //ViewBag.IdUsuarioAutenticado = idUsuarioAutenticado;

            FormsAuthentication.SetAuthCookie(u.Login, true);

            return Redirect("/");
        }
        public ActionResult Edit(int id)
        {
            if (Roles.IsUserInRole(User.Identity.Name, "Administrador"))
            {
                Usuario u = new Usuario();
                ViewBag.Titulo = "Novo Usuario";

                int perfilSelecionado = 1;

                if (id != 0)
                {
                    u = usuarioModel.obterUsuario(id);
                    perfilSelecionado = u.idPerfil;
                    ViewBag.Titulo = "Editar Usuario";
                }

                ViewBag.idPerfil
                    = new SelectList(perfilModel.todosPerfis(),
                        "idPerfil", "Descricao", perfilSelecionado);

                return View(u);
            }
            return Redirect("/Shared/Restrito");
        }
 /// <summary>
 /// Deprecated Method for adding a new object to the Usuario EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToUsuario(Usuario usuario)
 {
     base.AddObject("Usuario", usuario);
 }
 /// <summary>
 /// Create a new Usuario object.
 /// </summary>
 /// <param name="idUsuario">Initial value of the idUsuario property.</param>
 /// <param name="idPerfil">Initial value of the idPerfil property.</param>
 /// <param name="idPessoa">Initial value of the idPessoa property.</param>
 /// <param name="login">Initial value of the Login property.</param>
 /// <param name="senha">Initial value of the Senha property.</param>
 /// <param name="email">Initial value of the Email property.</param>
 public static Usuario CreateUsuario(global::System.Int32 idUsuario, global::System.Int32 idPerfil, global::System.Int32 idPessoa, global::System.String login, global::System.String senha, global::System.String email)
 {
     Usuario usuario = new Usuario();
     usuario.idUsuario = idUsuario;
     usuario.idPerfil = idPerfil;
     usuario.idPessoa = idPessoa;
     usuario.Login = login;
     usuario.Senha = senha;
     usuario.Email = email;
     return usuario;
 }
        public ActionResult EditUsuario(Usuario u, Perfil p, Pessoa pa)
        {
            if (Roles.IsUserInRole(User.Identity.Name, "Administrador"))
            {
                u.idPerfil = 1;

                string erro = null;
                if (u.idUsuario == 0)
                {
                    erro = usuarioModel.adicionarUsuario(u);
                }
                else
                {
                    erro = usuarioModel.editarUsuario(u);
                }
                if (erro == null)
                {
                    if (pa.idPessoa == 0)
                    {
                        erro = "p.idPEssoa vazio";
                    }
                    return RedirectToAction("EditEndereco", new { idEndereco = 0, pa.idPessoa });
                }
                else
                {
                    ViewBag.Erro = erro;
                    return View(u);
                }
            }
            return Redirect("/Shared/Restrito");
        }
        public ActionResult EditUsuario(int idUsuario, int idPessoa)
        {
            if (Roles.IsUserInRole(User.Identity.Name, "Administrador"))
            {
                Usuario u = new Usuario();
                u.idPessoa = idPessoa;
                u.idUsuario = 1;
                if (idUsuario != 0)
                {
                    u = usuarioModel.obterUsuario(idUsuario);
                }

                int perfilSelecionado = 1;

                if (idUsuario != 0)
                {
                    perfilSelecionado = u.idPerfil;
                }

                return View(u);
            }
            return Redirect("/Shared/Restrito");
        }
        private bool validarUsuario(Usuario usuario)
        {
            if (usuario.Login == "")
                return false;
            if (usuario.Senha == "")
                return false;
            if (usuario.idPerfil == 0)
                return false;

            return true;
        }
        public ActionResult EditUsuarioProfessor(Usuario u, Perfil p, Pessoa pa)
        {
            u.idPerfil = 2;

            string erro = null;
            if (u.idUsuario == 0)
            {
                erro = usuarioModel.adicionarUsuario(u);
            }
            else
            {
                erro = usuarioModel.editarUsuario(u);
            }
            if (erro == null)
            {
                if (pa.idPessoa == 0)
                {
                    erro = "p.idPEssoa vazio";
                }
                return RedirectToAction("EditEndereco", new { idEndereco = 0, pa.idPessoa });
            }
            else
            {
                ViewBag.Erro = erro;
                return View(u);
            }
        }
        // USUARIO PROFESSOR
        public ActionResult EditUsuarioProfessor(int idUsuario, int idPessoa)
        {
            Usuario u = new Usuario();
            u.idPessoa = idPessoa;
            u.idPerfil = 2;

            if (idUsuario != 0)
            {
                u = usuarioModel.obterUsuario(idUsuario);
            }

            int perfilSelecionado = 2;

            if (idUsuario != 0)
            {
                perfilSelecionado = u.idPerfil;
            }

            return View(u);
        }