コード例 #1
0
        /// <summary>
        /// 获取竞赛用户列表
        /// </summary>
        /// <param name="cid">竞赛ID</param>
        /// <returns>竞赛用户列表</returns>
        public static Dictionary <String, ContestUserEntity> GetContestUserList(Int32 cid)
        {
            Dictionary <String, ContestUserEntity> dict = ContestUserCache.GetContestUserListCache(cid);//获取缓存

            if (dict == null)
            {
                dict = ContestUserRepository.Instance.GetEntities(cid);
                ContestUserCache.SetContestUserListCache(cid, dict);//设置缓存
            }

            return(dict);
        }
コード例 #2
0
        /// <summary>
        /// 删除指定ID的竞赛用户
        /// </summary>
        /// <param name="cid">竞赛ID</param>
        /// <param name="usernames">逗号分隔的用户名</param>
        /// <returns>是否成功删除</returns>
        public static IMethodResult AdminDeleteContestUsers(Int32 cid, String usernames)
        {
            if (!AdminManager.HasPermission(PermissionType.ContestManage))
            {
                throw new NoPermissionException();
            }

            if (String.IsNullOrEmpty(usernames))
            {
                return(MethodResult.FailedAndLog("You must select at least one item!"));
            }

            Boolean success = ContestUserRepository.Instance.DeleteEntities(cid, usernames) > 0;

            if (!success)
            {
                return(MethodResult.FailedAndLog("No contest user was deleted!"));
            }

            ContestUserCache.RemoveContestUserListCache(cid);

            return(MethodResult.SuccessAndLog("Admin delete contest user, cid = {0}, username = {1}", cid.ToString(), usernames));
        }
コード例 #3
0
        /// <summary>
        /// 添加指定ID的竞赛用户
        /// </summary>
        /// <param name="cid">竞赛ID</param>
        /// <param name="usernames">竞赛用户</param>
        /// <returns>是否成功添加</returns>
        public static IMethodResult AdminInsertContestUsers(Int32 cid, String usernames)
        {
            if (!AdminManager.HasPermission(PermissionType.ContestManage))
            {
                throw new NoPermissionException();
            }

            if (String.IsNullOrEmpty(usernames))
            {
                return(MethodResult.InvalidRequest(RequestType.User));
            }

            Dictionary <String, ContestUserEntity> dict = new Dictionary <String, ContestUserEntity>();
            StringBuilder names = new StringBuilder();

            String[] namelist = usernames.Split('\n');

            for (Int32 i = 0; i < namelist.Length; i++)
            {
                String[] name = namelist[i].Replace('\t', ' ').Split(' ');

                if (name.Length < 1 || String.IsNullOrEmpty(name[0].Trim()))
                {
                    continue;
                }

                ContestUserEntity entity = new ContestUserEntity()
                {
                    ContestID    = cid,
                    UserName     = name[0].Replace("\r", "").Trim(),
                    RealName     = (name.Length >= 2 ? name[1].Replace("\r", "").Trim() : ""),
                    IsEnable     = true,
                    RegisterTime = DateTime.Now
                };

                if (!dict.ContainsKey(entity.UserName))
                {
                    names.Append(names.Length > 0 ? "," : "").Append(entity.UserName);
                }

                dict[entity.UserName] = entity;
            }

            try
            {
                Int32 count = ContestUserRepository.Instance.InsertEntities(cid, names.ToString(), dict);

                if (count <= 0)
                {
                    return(MethodResult.FailedAndLog("No contest user was added!"));
                }

                ContestUserCache.RemoveContestUserListCache(cid);

                return(MethodResult.SuccessAndLog <Int32>(count, "Admin add contest user, cid = {0}, username = {1}", cid.ToString(), usernames));
            }
            catch (DbException)
            {
                return(MethodResult.FailedAndLog("Failed to add these users, please check whether the names are all correct."));
            }
        }