public async Task<ActionResult> Editar(EditarUsuario model) { if (ModelState.IsValid) { var user = await UserManager.FindByIdAsync(model.id); user.nombre = model.nombre; user.apellido1 = model.apellido1; user.apellido2 = model.apellido2; user.telefono = model.telefono; user.email = model.email; user.UserName = model.UserName; var result = await UserManager.UpdateAsync(user); if (result.Succeeded) { ApplicationDbContext dba = new ApplicationDbContext(); Conexion db = new Conexion(); List<IdentityUserRole> lista_roles_usu = dba.User_Role.Where(m => m.UserId == user.Id).ToList(); dba.User_Role.RemoveRange(lista_roles_usu); dba.SaveChanges(); List<UsuariosGrupo> grupoUR = db.UsuariosGrupo.Where(m => m.idusuario == user.Id).ToList(); db.UsuariosGrupo.RemoveRange(grupoUR); db.SaveChanges(); grupoUR.Clear(); try { foreach (var role in model.rol) { UsuariosGrupo inGrupo = new UsuariosGrupo(); inGrupo.idgrupousuario = role; inGrupo.idusuario = user.Id; grupoUR.Add(inGrupo); List<GrupoU_Roles> listaRoles = db.GrupoU_Roles.Where(m=>m.idgrupo== role).ToList(); foreach (var intro in listaRoles) { var roless = db.Roles.FirstOrDefault(m=>m.Id == intro.idrol); var isInRole = await UserManager.IsInRoleAsync(user.Id, roless.Name); if (!isInRole) { await UserManager.AddToRoleAsync(user.Id, roless.Name); } } } db.UsuariosGrupo.AddRange(grupoUR); db.SaveChanges(); } catch (Exception e) { } Historial nuevo = new Historial("Modificó", User.Identity.GetUserId(), "usuario", user.Id, user.UserName, Request.UserHostAddress); TempData["Mensaje"] = "Datos del Usuario modificados correctamente."; //Para Crearlo y automaticamente longuearlo //await SignInAsync(user, isPersistent: false); return RedirectToAction("Editar", "Acceso", new {id= user.Id }); } else { AddErrors(result); } } //Si llegamos a este punto, es que se ha producido un error y volvemos a mostrar el formulario. return View(model); }
public async Task<ActionResult> Nuevo(RegisterViewModel model) { if (ModelState.IsValid) { StringHash cod_secreto = new StringHash(); TextoAleatorio text = new TextoAleatorio(); var user = new ApplicationUser() { UserName = model.UserName, nombre = model.nombre, apellido1= model.apellido1, apellido2 = model.apellido2, telefono = model.telefono, email= model.email, fecha_creado = DateTime.Now, cod_secreto = cod_secreto.Encrypt(text.Texto(), true, model.UserName) }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { //Crea Rol por defecto var rol = await UserManager.AddToRoleAsync(user.Id,"Lector"); UsuariosGrupo inGrupo = new UsuariosGrupo(); inGrupo.idgrupousuario = "8127f8b1-ff6e-4b21-bdd1-c3c9d1f9e440"; inGrupo.idusuario = user.Id; Conexion db = new Conexion(); db.UsuariosGrupo.Add(inGrupo); db.SaveChanges(); Historial nuevo = new Historial("Creó", User.Identity.GetUserId(), "usuario", user.Id, user.UserName, Request.UserHostAddress); //Para Crearlo y automaticamente longuearlo //await SignInAsync(user, isPersistent: false); return RedirectToAction("Editar", "Acceso", new {id=user.Id }); } else { AddErrors(result); } } // Si llegamos a este punto, es que se ha producido un error y volvemos a mostrar el formulario return View(model); }