public async Task <IActionResult> Edit(string id, ApplicationUserWithSingleRole model) { if (id != model.User.Id) { return(NotFound()); } if (ModelState.IsValid) { try { //_context.Update(model); var user = await _context.Users.Where(x => x.Id == model.User.Id).FirstOrDefaultAsync(); user.Name = model.User.Name; user.Email = model.User.Email; user.CreatedDate = model.User.CreatedDate; if ((await _userManager.IsInRoleAsync(user, model.RoleName)) == false) { var roles = await _userManager.GetRolesAsync(user); await _userManager.RemoveFromRolesAsync(user, roles.ToArray()); await _userManager.AddToRoleAsync(user, model.RoleName); } await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!UserExists(model.User.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(model)); }
public async Task <ActionResult <ApplicationUserWithSingleRole> > Edit(string id) { if (id == null) { return(NotFound()); } ApplicationUser user = await _context.Users.Where(x => x.Id == id) .Include(x => x.UserRoles).ThenInclude(x => x.Role).FirstOrDefaultAsync(); if (user == null) { return(NotFound()); } ViewData["Role"] = new SelectList(_context.Roles, "Name", "Name"); ApplicationUserWithSingleRole userWithRole = new ApplicationUserWithSingleRole(); userWithRole.User = user; userWithRole.RoleName = user.UserRoles.FirstOrDefault()?.Role?.Name; return(View(userWithRole)); }