public async Task <IActionResult> CreateOrEdit(UserUpdateOrCreateModel model) { if (ModelState.IsValid) { var createOrUpdateUser = _context.Users.Find(model.Id); if (createOrUpdateUser != null) { createOrUpdateUser.Validity = model.Validity; _context.Update(createOrUpdateUser); await _context.SaveChangesAsync(); var role = _context.Roles.Where(p => p.Id == model.RoleId).FirstOrDefault(); if (role != null) { var previousRole = _context.UserRoles.Where(p => p.UserId == createOrUpdateUser.Id).ToList(); _context.UserRoles.RemoveRange(previousRole); await _context.SaveChangesAsync(); await _userManager.AddToRoleAsync(createOrUpdateUser, role.Name); } return(RedirectToAction(nameof(UserSearch))); } } ViewData["RoleId"] = new SelectList(_context.Roles, "Id", "Label", model.RoleId); return(View(model)); }
public async Task <IActionResult> CreateOrEdit(long?id) { UserUpdateOrCreateModel user = new UserUpdateOrCreateModel(); if (id == null) { ViewData["RoleId"] = new SelectList(_context.Roles, "Id", "Name"); ViewData["Action"] = "Create"; return(View(user)); } var userModel = await _context.Users.FindAsync(id); ViewData["Action"] = "Update"; if (userModel == null) { return(NotFound()); } var userRoleModel = _context.UserRoles.Where(p => p.UserId == id).FirstOrDefault(); var roleList = _context.Roles.ToList(); if (userRoleModel != null) { ViewData["RoleId"] = new SelectList(roleList, "Id", "Label", userRoleModel.RoleId); user.RoleId = userRoleModel.RoleId; } else { ViewData["RoleId"] = new SelectList(roleList, "Id", "Label"); } user.Id = userModel.Id; user.Username = userModel.UserName; user.Validity = userModel.Validity; return(View(user)); }