public async Task<ActionResult> SaveUser(string id, AdminEditViewModel model) { try { // TODO: Add update logic here AdmUsrRole = model.RankName; AdmUsrName = model.UserName; var userid = context.Users.Where(x => x.UserName == AdmUsrName).Select(x => x.Id).FirstOrDefault(); var user = await UserManager.FindByIdAsync(userid); var userRoles = await UserManager.GetRolesAsync(user.Id); string[] roles = new string[userRoles.Count]; userRoles.CopyTo(roles, 0); await UserManager.RemoveFromRolesAsync(user.Id, roles); await UserManager.AddToRoleAsync(user.Id, AdmUsrRole); return RedirectToAction("Index", "Admin", new { Message = ManageMessageId.UserUpdated }); } catch { return RedirectToAction("Index", "Admin", new { Message = ManageMessageId.Error }); } }
public async Task<ActionResult> EditUser(string id, AdminEditViewModel model) { try { // TODO: Add update logic here var user = UserManager.FindById(id); model.Email = user.Email; var roles = await UserManager.GetRolesAsync(user.Id); model.UserName = user.UserName; foreach (var role in roles) { model.RankName = role; } AdmUsrName = model.UserName; AdmUsrEmail = model.Email; AdmUsrRole = model.RankName; return RedirectToAction("EditUser"); } catch { return View(); } }