public ActionResult AgregarPermisos(ModeloPermisosRol modelo) { tbRol Rol = db.tbRol.Where(x => x.codTipoUsuario == modelo.codRol).SingleOrDefault(); List <tbRolPermiso> tbRolPermisosAnt = Rol.tbRolPermiso.ToList(); foreach (var p in modelo.permisos) { if (p.IsChecked) { //si no esta en la lista antigua de la base de datos if (!tbRolPermisosAnt.Any(x => x.idPermiso == p.codPemiso)) { //el permiso no estaba y fue agregado db.tbRolPermiso.InsertOnSubmit(new tbRolPermiso { idPermiso = p.codPemiso, codTipoUsuario = modelo.codRol }); }//else: se encuentra en la base y no se quitó el permiso, no se modificoo } else { //si esta en la lista antigua de la base de datos es por que el permiso esta asignado y debe removerse if (tbRolPermisosAnt.Any(x => x.idPermiso == p.codPemiso)) { //tbRolPermiso rp = (from r in db.tbRolPermiso where (r.idPermiso == p.idPermiso && r.codTipoUsuario==modelo.rol.codTipoUsuario) select r).SingleOrDefault(); tbRolPermiso rp = db.tbRolPermiso.Where(x => x.codTipoUsuario == modelo.codRol && x.idPermiso == p.codPemiso).SingleOrDefault(); db.tbRolPermiso.DeleteOnSubmit(rp); }//else: no estaba y no ase agregaraa } } db.SubmitChanges(); return(RedirectToAction("Index")); }
public ActionResult CambiarEstadoPermiso(int codRol, int codPermiso) { dbHeredadesEntities db = new dbHeredadesEntities(); tbRolPermiso permiso = db.tbRolPermiso.Find(codRol, codPermiso); permiso.estado = !(permiso.estado); db.SaveChanges(); return(PartialView("_ListaPermisos", (from t in db.tbRolPermiso where t.codRol == codRol select t).ToList())); }