/// <summary> /// 删除指定ID的主题页面 /// </summary> /// <param name="ids">逗号分隔的主题页面ID</param> /// <returns>是否成功删除</returns> public static IMethodResult AdminDeleteTopicPages(String names) { if (!AdminManager.HasPermission(PermissionType.SuperAdministrator)) { throw new NoPermissionException(); } Boolean success = TopicPageRepository.Instance.DeleteEntities(names) > 0; if (!success) { return MethodResult.FailedAndLog("No page was deleted!"); } names.ForEachInIDs(',', name => { TopicPageCache.RemoveTopicPageCache(name);//删除缓存 }); return MethodResult.SuccessAndLog("Admin delete page, name = {0}", names); }
/// <summary> /// 删除指定ID的公告 /// </summary> /// <param name="ids">逗号分隔的公告ID</param> /// <returns>是否成功删除</returns> public static IMethodResult AdminDeleteNews(String ids) { if (!AdminManager.HasPermission(PermissionType.NewsManage)) { throw new NoPermissionException(); } if (!RegexVerify.IsNumericIDs(ids)) { return MethodResult.InvalidRequest(RequestType.News); } String[] arrids = ids.Split(','); String defaultID = NewsRepository.DEFAULTID.ToString(); for (Int32 i = 0; i < arrids.Length; i++) { if (String.Equals(arrids[i], defaultID)) { return MethodResult.FailedAndLog("Can not delete the default news!"); } } Boolean success = NewsRepository.Instance.DeleteEntities(ids) > 0; if (!success) { return MethodResult.FailedAndLog("No news was deleted!"); } ids.ForEachInIDs(',', id => { NewsCache.RemoveNewsCache(id);//删除缓存 }); NewsCache.RemoveLastestNewsListCache();//删除缓存 NewsCache.RemoveNewsCountCache();//删除缓存 return MethodResult.SuccessAndLog("Admin delete news, id = {0}", ids); }
/// <summary> /// 更新题目隐藏状态 /// </summary> /// <param name="ids">题目ID列表</param> /// <param name="isHide">隐藏状态</param> /// <returns>是否成功更新</returns> public static IMethodResult AdminUpdateProblemIsHide(String ids, Boolean isHide) { if (!AdminManager.HasPermission(PermissionType.ProblemManage)) { throw new NoPermissionException(); } if (!RegexVerify.IsNumericIDs(ids)) { return MethodResult.InvalidRequest(RequestType.Problem); } Boolean success = ProblemRepository.Instance.UpdateEntityIsHide(ids, isHide) > 0; if (!success) { return MethodResult.FailedAndLog("No problem was {0}!", isHide ? "hided" : "unhided"); } ids.ForEachInIDs(',', id => { ProblemCache.RemoveProblemCache(id);//删除缓存 ProblemCache.RemoveProblemSetCache(GetProblemPageIndex(id));//删除缓存 }); return MethodResult.SuccessAndLog("Admin {1} problem, id = {0}", ids, isHide ? "hide" : "unhide"); }
/// <summary> /// 更新竞赛隐藏状态 /// </summary> /// <param name="ids">竞赛ID列表</param> /// <param name="isHide">隐藏状态</param> /// <returns>是否成功更新</returns> public static IMethodResult AdminUpdateContestIsHide(String ids, Boolean isHide) { if (!AdminManager.HasPermission(PermissionType.ContestManage)) { throw new NoPermissionException(); } if (!RegexVerify.IsNumericIDs(ids)) { return MethodResult.InvalidRequest(RequestType.Contest); } Boolean success = ContestRepository.Instance.UpdateEntityIsHide(ids, isHide) > 0; if (!success) { return MethodResult.FailedAndLog("No contest was {0}!", isHide ? "hided" : "unhided"); } ids.ForEachInIDs(',', id => { ContestCache.RemoveContestCache(id);//删除缓存 }); ContestCache.RemoveContestListCountCache();//删除缓存 return MethodResult.SuccessAndLog("Admin {1} contest, id = {0}", ids, isHide ? "hide" : "unhide"); }
/// <summary> /// 更新主题隐藏状态 /// </summary> /// <param name="ids">主题ID列表</param> /// <param name="isHide">是否隐藏</param> /// <returns>是否成功更新</returns> public static IMethodResult AdminUpdateForumTopicIsHide(String ids, Boolean isHide) { if (!AdminManager.HasPermission(PermissionType.ForumManage)) { throw new NoPermissionException(); } if (!RegexVerify.IsNumericIDs(ids)) { return MethodResult.InvalidRequest(RequestType.ForumTopic); } Boolean success = ForumTopicRepository.Instance.UpdateEntityIsHide(ids, isHide) > 0; if (!success) { return MethodResult.FailedAndLog("No forum topic was {0}!", isHide ? "hided" : "unhided"); } ids.ForEachInIDs(',', id => { ForumTopicCache.RemoveForumTopicCache(id);//删除缓存 }); return MethodResult.SuccessAndLog("Admin {1} forum topic, id = {0}", ids, isHide ? "hide" : "unhide"); }