public async Task <IActionResult> RemoveUser(int?id) { if (id == null) { return(NotFound()); } var project = await _context.Projects .FirstOrDefaultAsync(m => m.Id == id); if (project == null) { return(NotFound()); } var usersExist = await _userManager.GetUsersForClaimAsync(new Claim("AssignedProject", project.Id.ToString())); if (!usersExist.Any()) { ModelState.AddModelError(string.Empty, "There are no users assigned to the project"); return(RedirectToAction(nameof(NoUsersToRemove))); } var vm = new ProjectsRemoveUserVM { ProjectId = project.Id, ProjectTitle = project.Title, CurrentUsers = new SelectList(await _userManager.GetUsersForClaimAsync(new Claim("AssignedProject", project.Id.ToString())), "Id", "Email") }; return(View(vm)); }
public async Task <IActionResult> RemoveUser(ProjectsRemoveUserVM rvm) { var user = await _userManager.FindByIdAsync(rvm.UserId); var project = await _context.Projects.FirstOrDefaultAsync(m => m.Id == rvm.ProjectId); var result = await _userManager.RemoveClaimAsync(user, new Claim("AssignedProject", project.Id.ToString())); if (result.Succeeded) { return(RedirectToAction("Details", new { id = rvm.ProjectId.ToString() })); } //repopulating view model rvm.ProjectId = project.Id; rvm.ProjectTitle = project.Title; rvm.CurrentUsers = new SelectList(await _userManager.GetUsersForClaimAsync(new Claim("AssignedProject", project.Id.ToString())), "Id", "Email"); return(View(rvm)); }