Example #1
0
 /// <summary>
 /// 获取队伍中的成员。
 /// </summary>
 /// <returns>一个数组,其中包含队伍中的成员用户句柄。</returns>
 public UserHandle[] GetMembers()
 {
     using (TeamDataProvider teamData = TeamDataProvider.Create(this, true))
     {
         return(teamData.GetMembers());
     }
 }
Example #2
0
 public void AddTeam(Team team)
 {
     if (UserHelper.HasUpdatePermissions(team.ID))
     {
         TeamDataProvider.GetInstance().AddTeam(ConvertObjects.ConvertType(team));
     }
 }
Example #3
0
 public void AddLeagueTeam(int teamID, int leagueID)
 {
     if (UserHelper.HasUpdatePermissions(teamID))
     {
         TeamDataProvider.GetInstance().AddLeagueTeam(leagueID, teamID);
     }
 }
Example #4
0
        public SelectMatchViewModel(IContext context)
        {
            _context = context;

            _provider = new TeamDataProvider();
            Teams     = new VirtualList <VirtualListItem>(_provider, 20);

            Gender = true;

            IsMatchSearch = false;
            IsMatchFound  = false;

//            List<MatchData> lst = new List<MatchData>();
//
//            lst.Add(new MatchData() {FirstTeamNameRus = "11", FirstTeamNameEng = "11" });
//            lst.Add(new MatchData() {FirstTeamNameRus = "22", FirstTeamNameEng = "22" });
//            lst.Add(new MatchData() {FirstTeamNameRus = "33", FirstTeamNameEng = "33" });
//            lst.Add(new MatchData() {FirstTeamNameRus = "44", FirstTeamNameEng = "44" });
//            lst.Add(new MatchData() {FirstTeamNameRus = "55", FirstTeamNameEng = "55" });
//            //                    lst.Add(new MatchData() {FirstTeamNameRus = "3333"});
//            //                    lst.Add(new MatchData() {FirstTeamNameRus = "4444"});
//            //                    lst.Add(new MatchData() {FirstTeamNameRus = "5555"});
//            //                    lst.Add(new MatchData() {FirstTeamNameRus = "6666"});
//
//
//            foreach (var item in lst)
//            {
//                FoundMatches.Add(item);
//            }
        }
Example #5
0
        public void ShouldReturnParsedData()
        {
            var fileReaderStub = new Mock <IFileReader>();

            var subject = new TeamDataProvider(fileReaderStub.Object, new FileParserStub());

            var result = subject.GetTeamData();

            Assert.NotEmpty(result);
        }
        public ActionResult AddTeamUser()
        {
            // AJAX 查询响应
            if (!UserSession.IsAuthorized(Session))
            {
                return(new ContentResult());
            }

            if (string.IsNullOrEmpty(Request.QueryString["teamId"]) ||
                string.IsNullOrEmpty(Request.QueryString["username"]))
            {
                return(new ContentResult());
            }

            int teamId;

            if (!int.TryParse(Request.QueryString["teamId"], out teamId))
            {
                return(new ContentResult());
            }

            TeamHandle teamHandle = UserManager.Default.QueryTeamById(teamId);

            if (teamHandle == null)
            {
                // 给定的队伍不存在于数据库中。
                return(new ContentResult());
            }

            UserHandle userHandle = UserManager.Default.QueryUserByName(Request.QueryString["username"]);

            if (userHandle == null)
            {
                // 给定的用户不存在于数据库中。
                return(new ContentResult());
            }

            // 查询队伍信息。
            using (TeamDataProvider data = TeamDataProvider.Create(teamHandle, true))
            {
                // 检查操作权限。
                if (string.Compare(data.Leader, UserSession.GetUsername(Session), false) != 0)
                {
                    return(new ContentResult());
                }
            }

            UserManager.Default.AddUserToTeam(teamHandle, userHandle);
            return(new ContentResult());
        }
        public ActionResult ContestRegisterIdentity()
        {
            string contestIdString = Request.QueryString["id"];

            if (string.IsNullOrEmpty(contestIdString))
            {
                return(QueryResult(1, "Contest ID is required."));
            }

            int contestId;

            if (!int.TryParse(contestIdString, out contestId))
            {
                return(QueryResult(2, "Invalid contest ID."));
            }

            ContestHandle contest = new ContestHandle(contestId);
            UserHandle    user    = UserSession.GetUserHandle(Session);

            if (user == null)
            {
                // 当前会话中不存在任何活动的登录用户。
                return(QueryResult(3, "User session not exist."));
            }

            ContestAuthorizationState authState = ContestAuthorization.GetUserAuthorizationState(contest, user);

            if (authState.RegisterState == ContestRegisterState.NotRegistered ||
                authState.RegisterState == ContestRegisterState.PasswordRequired)
            {
                return(QueryResult(string.Empty));
            }
            else
            {
                if (authState.RegisterState == ContestRegisterState.IndividualRegistered)
                {
                    return(QueryResult(user.Username));
                }
                else
                {
                    TeamHandle registeredTeam = new TeamHandle(authState.TeamId);
                    using (TeamDataProvider teamData = TeamDataProvider.Create(registeredTeam, true))
                    {
                        return(QueryResult(teamData.Name));
                    }
                }
            }
        }
Example #8
0
        public List <Team> GetTeams(List <int> validTeams = null, int?leagueID = null, int?playerID = null, int?sportID = null, bool showAll = false, DataCache dataCache = null)
        {
            var teams = TeamDataProvider.GetInstance().GetTeams(leagueID: leagueID, playerID: playerID, sportID: sportID, dataCache: dataCache);

            return(teams
                   .Where(t => UserHelper.HasGetPermissions(teamID: t.ID) || showAll || (validTeams?.Contains(t.ID) ?? false))
                   .Select(t => new Team()
            {
                ID = t.ID,
                Name = t.Name,
                LeagueID = t.LeagueID,
                SportID = t.SportID,
                PlayerNumber = t.PlayerNumber
            })
                   .ToList());
        }
Example #9
0
        /// <summary>
        /// 从给定的队伍句柄加载队伍数据到当前数据模型中。
        /// </summary>
        /// <param name="data">队伍句柄。</param>
        /// <exception cref="ArgumentNullException"/>
        public static TeamBriefModel FromTeamHandle(TeamHandle handle)
        {
            if (handle == null)
            {
                throw new ArgumentNullException(nameof(handle));
            }

            TeamBriefModel model = new TeamBriefModel();

            using (TeamDataProvider data = TeamDataProvider.Create(handle, true))
            {
                model.TeamId       = data.TeamId;
                model.Name         = data.Name;
                model.MembersCount = data.GetMembers().Length;
            }

            return(model);
        }
        public ActionResult CreateTeam(FormCollection form)
        {
            // AJAX 查询,以 JSON 返回结果。
            // 验证表单参数。
            if (string.IsNullOrEmpty(form["teamName"]) || string.IsNullOrEmpty(form["leader"]))
            {
                return(new ContentResult());
            }

            // 创建新的队伍。
            TeamHandle handle = UserManager.Default.CreateTeam();

            using (TeamDataProvider data = TeamDataProvider.Create(handle, false))
            {
                data.Name   = form["teamName"];
                data.Leader = form["leader"];

                UserManager.Default.AddUserToTeam(handle, new UserHandle(form["leader"]));
            }

            return(new ContentResult());
        }
        public ActionResult DeleteTeam()
        {
            if (!UserSession.IsAuthorized(Session))
            {
                return(new ContentResult());
            }

            if (string.IsNullOrEmpty(Request.QueryString["teamId"]))
            {
                return(new ContentResult());
            }

            int teamId;

            if (!int.TryParse(Request.QueryString["teamId"], out teamId))
            {
                return(new ContentResult());
            }

            TeamHandle teamHandle = UserManager.Default.QueryTeamById(teamId);

            if (teamHandle == null)
            {
                return(new ContentResult());
            }

            using (TeamDataProvider data = TeamDataProvider.Create(teamHandle, true))
            {
                // 检查操作权限。
                if (string.Compare(data.Leader, UserSession.GetUsername(Session), false) != 0)
                {
                    return(new ContentResult());
                }
            }

            UserManager.Default.RemoveTeam(teamHandle);
            return(new ContentResult());
        }
Example #12
0
        public Team GetTeam(int teamID, int leagueID, DataCache dataCache = null)
        {
            var team    = TeamDataProvider.GetInstance().GetTeams(teamID: teamID, leagueID: leagueID, dataCache: dataCache).First();
            var players = PlayerDataProvider.GetInstance().GetPlayers(teamID: teamID, leagueID: leagueID, dataCache: dataCache);
            var games   = GamesService.GetInstance().GetGames(teamID: teamID, leagueID: leagueID, dataCache: dataCache);

            var selectedTeam = new Team()
            {
                ID      = team.ID,
                Name    = team.Name,
                Players = players.Select(p => new Player()
                {
                    ID     = p.ID,
                    Name   = p.Name,
                    Number = p.Number
                }).ToList(),
                Games    = games,
                LeagueID = team.LeagueID,
                SportID  = team.SportID
            };

            return(selectedTeam);
        }
        /// <summary>
        /// 从给定的队伍句柄创建队伍详细信息数据模型。
        /// </summary>
        /// <param name="handle">队伍句柄。</param>
        /// <returns>队伍详细信息数据模型。</returns>
        /// <exception cref="ArgumentNullException"/>
        public static TeamDetailModel FromTeamHandle(TeamHandle handle)
        {
            if (handle == null)
            {
                throw new ArgumentNullException(nameof(handle));
            }

            TeamDetailModel model = new TeamDetailModel();

            using (TeamDataProvider data = TeamDataProvider.Create(handle, true))
            {
                model.TeamId   = data.TeamId;
                model.TeamName = data.Name;
                model.Leader   = data.Leader;

                foreach (UserHandle user in data.GetMembers())
                {
                    model.Members.Add(UserProfileModel.FromUserHandle(user));
                }
            }

            return(model);
        }
 public CreateMatchViewModel()
 {
     _provider = new TeamDataProvider();
     HomeTeams = new VirtualList <VirtualListItem>(_provider, 20);
     AwayTeams = new VirtualList <VirtualListItem>(_provider, 20);
 }