Пример #1
0
        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));
        }
Пример #2
0
        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));
        }