private async Task <UserListModel> GetUserListModel(List <UserRolesInfo> users) { var coursesForUsers = userRolesRepo.GetCoursesForUsers(); var courses = User.GetControllableCoursesId().ToList(); var currentUserId = User.Identity.GetUserId(); var userIds = users.Select(u => u.UserId).ToList(); var tempCoursesIds = tempCoursesRepo.GetTempCourses() .Select(t => t.CourseId) .ToHashSet(); var model = new UserListModel { CanToggleRoles = User.HasAccess(CourseRole.CourseAdmin), ShowDangerEntities = User.IsSystemAdministrator(), Users = users.Select(user => GetUserModel(user, coursesForUsers, courses, tempCoursesIds)).ToList(), UsersGroups = groupsRepo.GetUsersGroupsNamesAsStrings(courses, userIds, User, actual: true, archived: false), UsersArchivedGroups = groupsRepo.GetUsersGroupsNamesAsStrings(courses, userIds, User, actual: false, archived: true), CanViewAndToggleCourseAccesses = false, CanViewAndToogleSystemAccesses = User.IsSystemAdministrator(), CanViewProfiles = systemAccessesRepo.HasSystemAccess(currentUserId, SystemAccessType.ViewAllProfiles) || User.IsSystemAdministrator(), }; return(model); }