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 }");
            }
        }
Example #2
0
        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());
        }