public ActionResult GetTeamMembers(string projectSeriesGuid) { return(ActionUtils.Json(() => { var projectSeriesLogicModel = new ProjectSeriesLogicModel(CurrentUserName, projectSeriesGuid); var projectSeries = projectSeriesLogicModel.Instance; var project = projectSeriesLogicModel.CurrentProject.Instance; CheckPermission(PermissionObjectType.Project, project.ProjectGuid, PermissionType.Read); var logicModel = projectSeriesLogicModel.CurrentProject; var adminUserNames = logicModel.Team.Chiefs.Select(x => x.UserName).ToList(); var projectId = project.ProjectId; var teamAdmins = m_dbAdapter.TeamAdmin.GetByProjectId(projectId); var teamAdminUserNames = teamAdmins.Select(x => x.UserName).ToList(); var teamMembers = m_dbAdapter.TeamMember.GetByProjectId(projectId); var teamMemberUserNames = teamMembers.Select(x => x.UserName).ToList(); var allUserNames = new List <string>(); allUserNames.AddRange(adminUserNames); allUserNames.AddRange(teamAdminUserNames); allUserNames.AddRange(teamMemberUserNames); allUserNames = allUserNames.Distinct(StringComparer.OrdinalIgnoreCase).ToList(); Platform.UserProfile.Precache(allUserNames); //管理员的权限从数据库中取得 var dictPermissions = m_dbAdapter.Permission.GetAllPermission(adminUserNames, projectSeriesGuid); var dictTeamAdminPermissions = m_dbAdapter.Permission.GetAllPermission(teamAdminUserNames, projectSeriesGuid); var result = new TeamMemberListViewModel(); var personInCharge = Platform.UserProfile.Get(projectSeries.PersonInCharge); if (personInCharge != null) { result.PersonInCharge = new TeamMemberViewModel(personInCharge); if (IsAdmin(projectSeries)) { result.PersonInCharge.Permission.Set(dictPermissions[result.PersonInCharge.UserName.ToLower()]); } } var creator = Platform.UserProfile.Get(projectSeries.CreateUserName); if (creator != null) { result.Creator = new TeamMemberViewModel(creator); if (IsAdmin(projectSeries)) { result.Creator.Permission.Set(dictPermissions[result.Creator.UserName.ToLower()]); } } result.TeamMembers = teamMembers.ConvertAll(x => { var teamMember = new TeamMemberViewModel(Platform.UserProfile.Get(x.UserName)); teamMember.Permission.Set(x.Read, x.Write, x.Execute); return teamMember; }).OrderBy(x => x.RealName, CommUtils.StringComparerCN).ThenBy(x => x.UserName).ToList(); result.TeamAdmins = teamAdmins.ConvertAll(x => { var teamMember = new TeamMemberViewModel(Platform.UserProfile.Get(x.UserName)); teamMember.Permission.Set(dictTeamAdminPermissions[teamMember.UserName.ToLower()]); return teamMember; }).OrderBy(x => x.RealName, CommUtils.StringComparerCN).ThenBy(x => x.UserName).ToList(); return ActionUtils.Success(result); })); }
private List <TeamListViewModel> GetTeamsFromCmd(OleDbCommand cmd) { List <TeamListViewModel> teams = new List <TeamListViewModel>(); TeamListViewModel team = null; using (OleDbDataReader dbReader = cmd.ExecuteReader()) { int _playerName = dbReader.GetOrdinal("list_name"); int _playerNumber = dbReader.GetOrdinal("player_nr"); int _setsPlayed = dbReader.GetOrdinal("sets_played"); int _rating = dbReader.GetOrdinal("rating"); int _seasonYear = dbReader.GetOrdinal("season_year"); int _seasonPeriod = dbReader.GetOrdinal("season_period"); int _teamId = dbReader.GetOrdinal("team_id"); int _teamNumber = dbReader.GetOrdinal("team_number"); int _clubName = dbReader.GetOrdinal("club_name"); int _pouleCategory = dbReader.GetOrdinal("poule_category"); int _regionName = dbReader.GetOrdinal("region_name"); int _className = dbReader.GetOrdinal("class_name"); int _pouleName = dbReader.GetOrdinal("poule_name"); int _pouleId = dbReader.GetOrdinal("PouleId"); int _seasonId = dbReader.GetOrdinal("SeasonId"); int _classLevel = dbReader.GetOrdinal("class_level"); while (dbReader.Read()) { if (team == null || !team.teamId.Equals(dbReader.GetInt32(_teamId))) { team = new TeamListViewModel(); team.teamId = dbReader.GetInt32(_teamId); team.teamNumber = dbReader.GetInt32(_teamNumber); team.clubName = dbReader.GetString(_clubName); team.seasonId = dbReader.GetInt32(_seasonId); team.seasonYear = dbReader.GetInt32(_seasonYear); team.seasonPeriod = dbReader.GetInt32(_seasonPeriod); team.pouleId = dbReader.GetInt32(_pouleId); team.pouleName = dbReader.GetString(_pouleName); team.pouleCategory = dbReader.GetInt32(_pouleCategory); team.regionName = dbReader.GetString(_regionName); team.className = dbReader.GetString(_className); team.classLevel = dbReader.GetInt32(_classLevel); team.teamMembers = new List <TeamMemberListViewModel>(); teams.Add(team); } TeamMemberListViewModel teamMember = new TeamMemberListViewModel(); teamMember.playerName = dbReader.GetString(_playerName); teamMember.playerNumber = dbReader.GetString(_playerNumber); teamMember.setsPlayed = dbReader.GetInt32(_setsPlayed); teamMember.rating = dbReader.GetInt32(_rating); team.teamMembers.Add(teamMember); } } RatingService.CalculateTeamRatings(teams); return(teams); }