public static void CopyPropFromAccountViewModel(this ApplicationUser user, AccountViewModel userView,IList<IdentityRole> roles) { user.UserName = userView.UserName; user.Email = userView.Email; user.PhoneNumber = userView.PhoneNumber; user.Roles.Clear(); foreach (var role in userView.UserInRole) { user.Roles.Add(role); } }
public ActionResult UpdateUser(AccountViewModel userAccount,[DataSourceRequest] DataSourceRequest request) { try { var persistentUser = db.Users.GetById(userAccount.Id); persistentUser.CopyPropFromAccountViewModel(userAccount, roles); db.Users.Update(persistentUser); db.SaveChanges(); return Json(new[] { persistentUser.ToAccountViewModel() }.ToDataSourceResult(request, ModelState)); } catch (Exception ex) { ModelState.AddModelError(ex.GetType().ToString(), ex.Message); return Json(new[] { userAccount }.ToDataSourceResult(request, ModelState)); } }
public ActionResult DeleteUser([DataSourceRequest]DataSourceRequest request, AccountViewModel user) { if (user != null && ModelState.IsValid) { if (user.Id == User.Identity.GetUserId()) { ModelState.AddModelError("", "You cannot delete current user."); } else { db.Users.Delete(user.Id); db.SaveChanges(); } } var users = db.Users.All().Select(AccountViewModel.ToAccountViewModel).ToList(); return Json(users.ToDataSourceResult(request, ModelState)); }