public ActionResult Create(Usuario usuario) { if (ModelState.IsValid) { db.Usuarios.Add(usuario); db.SaveChanges(); return RedirectToAction("Index"); } ViewBag.idInstitucion = new SelectList(db.Instituciones, "id", "nit", usuario.idInstitucion); return View(usuario); }
/// <summary> /// Permite la carga de grupos a ser asignados al usuario /// </summary> /// <param name="usuario"></param> private void CargarGruposAsignados(Usuario usuario) { var allGrupos = db.Grupos; var usuarioGrupos = new HashSet<int>(usuario.Grupo.Select(c => c.id)); var viewModel = new List<GruposAsignadosViewModel>(); foreach (var grupo in allGrupos) { viewModel.Add(new GruposAsignadosViewModel { idGrupo = grupo.id, Nombre = grupo.id.ToString(), Asignado = usuarioGrupos.Contains(grupo.id) }); } ViewBag.Grupos = viewModel; }
private void UpdateGruposDeUsuario(string[] selectedGrupos, Usuario usuarioToUpdate) { if (selectedGrupos == null) { usuarioToUpdate.Grupo = new List<Grupo>(); return; } var selectedGruposHS = new HashSet<string>(selectedGrupos); var usuarioGrupos = new HashSet<int>(usuarioToUpdate.Grupo.Select(c => c.id)); foreach (var course in db.Grupos) { if (selectedGruposHS.Contains(course.id.ToString())) { if (!usuarioGrupos.Contains(course.id)) { usuarioToUpdate.Grupo.Add(course); } } else { if (usuarioGrupos.Contains(course.id)) { usuarioToUpdate.Grupo.Remove(course); } } } }
public ActionResult Edit(Usuario usuario, string[] selectedGrupos) { if (ModelState.IsValid) { UpdateGruposDeUsuario(selectedGrupos, usuario); db.Entry(usuario).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } CargarGruposAsignados(usuario); ViewBag.idInstitucion = new SelectList(db.Instituciones, "id", "nit", usuario.idInstitucion); return View(usuario); }