/// <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); }
/// <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)); }
/// <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.")); } }