public ActionResult CrearEditarUsuario(int?IdUsuario) { CrearEditarUsuarioViewModel Model = new CrearEditarUsuarioViewModel(); Model.TiposUsuario = db.TipoUsuarios.OrderBy(x => x.TipoUsuario1); if (IdUsuario.HasValue) { Model.Form.CreacionUsuario = false; Usuario user = db.Usuarios.Single(x => x.IdUsuario == IdUsuario.Value); Mapper.Map <Usuario, CrearEditarUsuarioFormModel>(user, Model.Form); Model.Form.IdTipoUsuario = user.IdTipoUsuario.GetValueOrDefault(1); } return(View(Model)); }
//[ValidateAntiForgeryToken] public async Task <ActionResult> CrearEditarUsuario(CrearEditarUsuarioFormModel Form) { if (ModelState.IsValid) { if (Form.IdUsuario.HasValue) { Usuario _user = db.Usuarios.Single(x => x.IdUsuario == Form.IdUsuario); int AntigupoTipoUsuario = _user.IdTipoUsuario.Value; _user.Nombre = Form.Nombre; _user.ApellidoPaterno = Form.ApellidoPaterno; _user.IdTipoUsuario = Form.IdTipoUsuario; if (AntigupoTipoUsuario != Form.IdTipoUsuario) { var user = UserManager.FindByName(_user.NombreUsuario); var roles = UserManager.GetRoles(user.Id); foreach (var rol in db.TipoUsuarioPermisos.Where(x => x.IdTipoUsuario == AntigupoTipoUsuario).Select(x => x.Permiso.Permiso1)) { UserManager.RemoveFromRole(user.Id, rol); } foreach (var permiso in _user.TipoUsuario.TipoUsuarioPermisos.Select(x => x.Permiso.Permiso1)) { var roleresult = UserManager.AddToRole(user.Id, permiso); } } db.SubmitChanges(); Mensaje = "El usuario fue editado exitosamente"; return(RedirectToAction("ListarUsuario")); } else { string Password = Form.Rut.Numero.ToString().Substring(0, 6); var user = new ApplicationUser { UserName = Form.Correo, Email = Form.Correo }; var result = await UserManager.CreateAsync(user, Password); if (result.Succeeded) { foreach (var permiso in db.TipoUsuarioPermisos.Where(x => x.IdTipoUsuario == Form.IdTipoUsuario).Select(x => x.Permiso.Permiso1)) { var roleresult = UserManager.AddToRole(user.Id, permiso); } //await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false); Usuario _user = new Usuario() { IdTipoUsuario = Form.IdTipoUsuario, Rut = Form.Rut.Numero, NombreUsuario = Form.Correo, Nombre = Form.Nombre, ApellidoPaterno = Form.ApellidoPaterno, }; db.Usuarios.InsertOnSubmit(_user); db.SubmitChanges(); } //AddErrors(result); Mensaje = "El Usuario fue creado exitosamente."; return(RedirectToAction("ListarUsuario")); } } CrearEditarUsuarioViewModel Model = new CrearEditarUsuarioViewModel(Form); Model.TiposUsuario = db.TipoUsuarios.OrderBy(x => x.TipoUsuario1); if (Form.IdUsuario.HasValue) { Model.Form.CreacionUsuario = false; } return(View(Model)); }