/// <summary> /// 根据用户名获取未通过提交列表 /// </summary> /// <param name="userName">用户名</param> /// <param name="solvedList">该用户AC题目ID的列表</param> /// <param name="contestID">竞赛ID</param> /// <returns>题目ID列表</returns> public static List <Int32> GetUnSolvedProblemIDListByUser(String userName, List <Int32> lstSolved, Int32 contestID) { if (String.IsNullOrEmpty(userName)) { return(new List <Int32>()); } if (!RegexVerify.IsUserName(userName)) { throw new InvalidRequstException(RequestType.User); } List <Int32> lstUnsolved = (contestID == -1 ? SolutionCache.GetProblemIDListCache(userName, true) : null);//获取缓存 if (lstUnsolved == null) { lstUnsolved = SolutionRepository.Instance.GetEntityIDsByUserAndLessResultType(userName, contestID, ResultType.Accepted); if (lstUnsolved != null && lstUnsolved.Count > 0 && lstSolved != null && lstSolved.Count > 0) { foreach (Int32 pid in lstSolved) { lstUnsolved.Remove(pid); } } if (contestID == -1) { SolutionCache.SetProblemIDListCache(userName, true, lstUnsolved);//设置缓存 } } return(lstUnsolved != null ? lstUnsolved : new List <Int32>()); }
/// <summary> /// 根据用户名和提交结果获取通过提交列表 /// </summary> /// <param name="userName">用户名</param> /// <param name="contestID">竞赛ID</param> /// <returns>题目ID列表</returns> public static List <Int32> GetSolvedProblemIDListByUser(String userName, Int32 contestID) { if (String.IsNullOrEmpty(userName)) { return(new List <Int32>()); } if (!RegexVerify.IsUserName(userName)) { throw new InvalidRequstException(RequestType.User); } List <Int32> lstSolved = (contestID == -1 ? SolutionCache.GetProblemIDListCache(userName, false) : null);//获取缓存 if (lstSolved == null) { lstSolved = SolutionRepository.Instance.GetEntityIDsByUserAndResultType(userName, contestID, ResultType.Accepted); if (contestID == -1) { SolutionCache.SetProblemIDListCache(userName, false, lstSolved); //获取缓存 } } return(lstSolved != null ? lstSolved : new List <Int32>()); }