public async Task AddUserToProjectAsync(string userId, int projectId) { //Needs to check for Project Manager - only one allowed try { if (!await IsUserOnProjectAsync(userId, projectId)) { BTUser user = await _userManager.FindByIdAsync(userId); if (await _roleService.IsUserInRoleAsync(user, Roles.ProjectManager.ToString())) { var oldManager = await ProjectManagerOnProjectAsync(projectId); if (oldManager != null) { await RemoveUserFromProjectAsync(oldManager.Id, projectId); } } Project project = await _context.Projects.FindAsync(projectId); try { project.Members.Add(user); await _context.SaveChangesAsync(); } catch (Exception) { throw; } } } catch (Exception ex) { Debug.WriteLine($"*** Error *** - Error Adding user to project --> { ex.Message }"); } }
public async Task <IActionResult> ManageRoles(List <string> userIds, string roleName) { foreach (var userId in userIds) { BTUser user = await _context.Users.FindAsync(userId); if (!await _roleService.IsUserInRoleAsync(user, roleName)) { var userRoles = await _roleService.ListUserRolesAsync(user); foreach (var role in userRoles) { await _roleService.RemoveUserFromRoleAsync(user, role); } await _roleService.AddUserToRoleAsync(user, roleName); } } return(View()); }