public async Task <ActionResult> Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } AspNet_Perfiles perfil = await db.AspNet_Perfiles.FindAsync(id); List <AspNetRole> roles = await db.AspNetRoles.ToListAsync(); foreach (var cont in roles) { if (perfil.AspNetRoles.ToList().Exists(rr => rr.Name == cont.Name)) { cont.Activo = true; } } if (perfil == null) { return(HttpNotFound()); } if (TempData["MsjExito"] != null) { ViewBag.MsjExito = TempData["MsjExito"]; TempData.Remove("MsjExito"); } ViewBag.IdPerfil = perfil.id; ViewBag.Perfil = perfil.descripcion; return(View(roles)); }
/// <summary> /// Agregar - actualiza los roles de un perfil. El perfil Ya debe esxistri en la DB /// </summary> public static void AgregarRolesPerfiles(AspNet_Perfiles perfil) { List <AspNetUser> listUsu; using (Entidades.EF.ComunidadEntities context = new Entidades.EF.ComunidadEntities()) { context.Database.ExecuteSqlCommand("DELETE FROM AspNet_PerfilesRoles WHERE PerfilesId = @id", new SqlParameter("id", perfil.id)); var per = context.AspNet_Perfiles.Find(perfil.id); var sql = @"SELECT DISTINCT anu.* FROM AspNet_PerfilesUsuarios anpu INNER JOIN AspNetUsers anu ON anu.Id = anpu.UsuariosId WHERE anpu.PerfilesId = @id"; listUsu = context.Database.SqlQuery <Entidades.EF.AspNetUser>(sql, new SqlParameter("id", perfil.id)).ToList(); foreach (var usu in listUsu) { usu.AspNet_Perfiles = context.AspNetUsers.Find(usu.Id).AspNet_Perfiles; } per.AspNetRoles = perfil.AspNetRoles; foreach (var r in per.AspNetRoles) { context.Entry(r).State = System.Data.Entity.EntityState.Modified; } context.Entry(per).State = System.Data.Entity.EntityState.Modified; context.SaveChanges(); } foreach (var usu in listUsu) { agregarUsarioRoles(usu); } }
public async Task <ActionResult> DeleteConfirmed(int id) { AspNet_Perfiles aspNet_Perfiles = await db.AspNet_Perfiles.FindAsync(id); db.AspNet_Perfiles.Remove(aspNet_Perfiles); await db.SaveChangesAsync(); return(RedirectToAction("Index")); }
public async Task <ActionResult> Edit([Bind(Include = "id,descripcion")] AspNet_Perfiles aspNet_Perfiles) { if (ModelState.IsValid) { db.Entry(aspNet_Perfiles).State = EntityState.Modified; await db.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(aspNet_Perfiles)); }
public async Task <ActionResult> Create([Bind(Include = "id,descripcion")] AspNet_Perfiles aspNet_Perfiles) { if (ModelState.IsValid) { db.AspNet_Perfiles.Add(aspNet_Perfiles); await db.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(aspNet_Perfiles)); }
public async Task <ActionResult> Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } AspNet_Perfiles aspNet_Perfiles = await db.AspNet_Perfiles.FindAsync(id); if (aspNet_Perfiles == null) { return(HttpNotFound()); } return(View(aspNet_Perfiles)); }
public async Task <ActionResult> RolesPerfil(List <AspNetRole> listRoles) { var idPerfil = Request.Form["id-perfil"]; Entidades.EF.AspNet_Perfiles perf = new AspNet_Perfiles(); perf.id = Convert.ToInt32(idPerfil); foreach (var r in listRoles) { if (r.Activo) { perf.AspNetRoles.Add(r); } } Negocio.ControladorUsuarios.AgregarRolesPerfiles(perf); //var perf = db.AspNet_Perfiles.Find(Convert.ToInt32(idPerfil)); //db.Entry(perf).State = EntityState.Modified; //perf.AspNetRoles.Clear(); //foreach (var r in listRoles) //{ // if (perf.AspNetRoles.Any(rr=>rr.Id == r.Id)) // { // if (r.Activo) // { // db.Entry(r).State = EntityState.Unchanged; // perf.AspNetRoles.Add(r); // } // else // { // db.Entry(r).State = EntityState.Unchanged; // perf.AspNetRoles.Add(r); // } // } //} //await db.SaveChangesAsync(); TempData["MsjExito"] = "Roles Modificados Correctamente"; return(RedirectToAction("Details", "Perfiles", new { id = idPerfil })); }