コード例 #1
0
        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);
            }));
        }
コード例 #2
0
        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);
        }