コード例 #1
0
        /// <summary>
        /// 设置指定的查询语句并返回当前语句
        /// </summary>
        /// <param name="command">选择语句</param>
        /// <param name="type">主题类型</param>
        /// <param name="relativeID">相关ID</param>
        /// <param name="includeHide">是否包含隐藏主题</param>
        /// <returns>当前语句</returns>
        internal static SelectCommand Where(this SelectCommand command, ForumTopicType type, Int32 relativeID, Boolean includeHide)
        {
            SqlConditionBuilder  c         = command.ConditionBuilder;
            AbstractSqlCondition condition = command.WhereCondition as AbstractSqlCondition;
            AbstractSqlCondition temp      = null;

            //不包含隐藏
            if (!includeHide)
            {
                temp      = c.Equal(ForumTopicRepository.ISHIDE, false);
                condition = (condition == null ? temp : condition & temp);
            }

            if (type == ForumTopicType.Default)                                                  //普通讨论板中包括题目专属讨论板的帖子
            {
                temp      = c.LessThan(ForumTopicRepository.TYPE, (Byte)ForumTopicType.Contest); //普通0,题目1,竞赛2
                condition = (condition == null ? temp : condition & temp);
            }
            else//竞赛或题目专属讨论板只有专属帖子
            {
                temp      = c.Equal(ForumTopicRepository.TYPE, (Byte)type) & c.Equal(ForumTopicRepository.RELATIVEID, relativeID);
                condition = (condition == null ? temp : condition & temp);
            }

            return(command.Where(condition));
        }
コード例 #2
0
ファイル: ForumTopicCache.cs プロジェクト: sanshengshi/sdnuoj
        /// <summary>
        /// 增加缓存中主题总数
        /// </summary>
        /// <param name="type">主题类型</param>
        /// <param name="relativeID">相关ID</param>
        public static void IncreaseForumTopicCountCache(ForumTopicType type, Int32 relativeID)
        {
            Int32 count = GetForumTopicCountCache(type, relativeID);

            if (count > 0)
            {
                SetForumTopicCountCache(type, relativeID, count + 1);
            }
        }
コード例 #3
0
        /// <summary>
        /// 获取主题总数(有缓存)
        /// </summary>
        /// <param name="cid">竞赛ID</param>
        /// <param name="pid">题目ID</param>
        /// <returns>主题总数</returns>
        private static Int32 CountForumTopics(String cid, String pid)
        {
            ForumTopicType type       = ForumTopicManager.GetForumTopicType(cid, pid);
            Int32          relativeID = ForumTopicManager.GetRelativeID(cid, pid);

            Int32 recordCount = ForumTopicCache.GetForumTopicCountCache(type, relativeID);//获取缓存

            if (recordCount < 0)
            {
                recordCount = ForumTopicRepository.Instance.CountEntities(type, relativeID, false);
                ForumTopicCache.SetForumTopicCountCache(type, relativeID, recordCount);//设置缓存
            }

            return(recordCount);
        }
コード例 #4
0
ファイル: ForumTopicTypeDAL.cs プロジェクト: holdbase/IES2
 /// <summary>
 /// 分享帖子
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public static bool ForumTopicType_Edit(ForumTopicType model)
 {
     try
     {
         using (var conn = DbHelper.CCService())
         {
             var p = new DynamicParameters();
             p.Add("@TopicID", model.TopicID);
             p.Add("@ForumTypeIDS", model.ForumTypeIDS);
             conn.Execute("ForumTopicType_Edit", p, commandType: CommandType.StoredProcedure);
             return true;
         }
     }
     catch (Exception e)
     {
         return false;
     }
 }
コード例 #5
0
        /// <summary>
        /// 获取主题列表
        /// </summary>
        /// <param name="pageIndex">页面索引</param>
        /// <param name="cid">竞赛ID</param>
        /// <param name="pid">题目ID</param>
        /// <returns>主题列表</returns>
        public static PagedList <ForumTopicEntity> GetForumTopicList(Int32 pageIndex, String cid, String pid)
        {
            ForumTopicType type       = ForumTopicManager.GetForumTopicType(cid, pid);
            Int32          relativeID = ForumTopicManager.GetRelativeID(cid, pid);

            if (type == ForumTopicType.Problem && !ProblemManager.InternalExistsProblem(relativeID))
            {
                throw new InvalidRequstException(RequestType.Problem);
            }
            else if (type == ForumTopicType.Contest && !ContestManager.InternalExistsContest(relativeID))
            {
                throw new InvalidRequstException(RequestType.Contest);
            }

            Int32 pageSize    = ForumTopicManager.FORUM_PAGE_SIZE;
            Int32 recordCount = ForumTopicManager.CountForumTopics(cid, pid);

            return(ForumTopicRepository.Instance
                   .GetEntities(pageIndex, pageSize, recordCount, type, relativeID, false)
                   .ToPagedList(pageSize, recordCount));
        }
コード例 #6
0
ファイル: ForumTopicCache.cs プロジェクト: prostickman/sdnuoj
 /// <summary>
 /// 向缓存中写入主题总数
 /// </summary>
 /// <param name="type">主题类型</param>
 /// <param name="relativeID">相关ID</param>
 /// <param name="count">主题总数</param>
 public static void SetForumTopicCountCache(ForumTopicType type, Int32 relativeID, Int32 count)
 {
     CacheManager.Set(GetForumTopicCountCacheKey(type, relativeID), count, FORUM_TOPIC_COUNT_CACHE_TIME);
 }
コード例 #7
0
ファイル: ForumTopicCache.cs プロジェクト: prostickman/sdnuoj
 /// <summary>
 /// 从缓存中删除主题总数
 /// </summary>
 /// <param name="type">主题类型</param>
 /// <param name="relativeID">相关ID</param>
 public static void RemoveForumTopicCountCache(ForumTopicType type, Int32 relativeID)
 {
     CacheManager.Remove(GetForumTopicCountCacheKey(type, relativeID));
 }
コード例 #8
0
ファイル: ForumTopicCache.cs プロジェクト: prostickman/sdnuoj
 /// <summary>
 /// 增加缓存中主题总数
 /// </summary>
 /// <param name="type">主题类型</param>
 /// <param name="relativeID">相关ID</param>
 public static void IncreaseForumTopicCountCache(ForumTopicType type, Int32 relativeID)
 {
     Int32 count = GetForumTopicCountCache(type, relativeID);
     if (count > 0) SetForumTopicCountCache(type, relativeID, count + 1);
 }
コード例 #9
0
ファイル: ForumTopicCache.cs プロジェクト: prostickman/sdnuoj
 /// <summary>
 /// 从缓存中读取主题总数
 /// </summary>
 /// <param name="type">主题类型</param>
 /// <param name="relativeID">相关ID</param>
 /// <returns>主题总数</returns>
 public static Int32 GetForumTopicCountCache(ForumTopicType type, Int32 relativeID)
 {
     return CacheManager.GetInt32(GetForumTopicCountCacheKey(type, relativeID));
 }
コード例 #10
0
ファイル: ForumTopicCache.cs プロジェクト: sanshengshi/sdnuoj
 /// <summary>
 /// 从缓存中读取主题总数
 /// </summary>
 /// <param name="type">主题类型</param>
 /// <param name="relativeID">相关ID</param>
 /// <returns>主题总数</returns>
 public static Int32 GetForumTopicCountCache(ForumTopicType type, Int32 relativeID)
 {
     return(CacheManager.GetInt32(GetForumTopicCountCacheKey(type, relativeID)));
 }
コード例 #11
0
ファイル: ForumTopicBLL.cs プロジェクト: holdbase/IES2
 public bool ForumTopicType_Upd(ForumTopicType model)
 {
     throw new NotImplementedException();
 }
コード例 #12
0
ファイル: ForumTopicBLL.cs プロジェクト: holdbase/IES2
 public ForumTopicType ForumTopicType_ADD(ForumTopicType model)
 {
     throw new NotImplementedException();
 }
コード例 #13
0
 /// <summary>
 /// 获取实体总数
 /// </summary>
 /// <param name="type">主题类型</param>
 /// <param name="relativeID">相关ID</param>
 /// <param name="includeHide">是否包含隐藏主题</param>
 /// <returns>实体总数</returns>
 public Int32 CountEntities(ForumTopicType type, Int32 relativeID, Boolean includeHide)
 {
     return(this.Select()
            .Where(type, relativeID, includeHide)
            .Count());
 }
コード例 #14
0
 /// <summary>
 /// 获取实体列表
 /// </summary>
 /// <param name="pageIndex">页面索引</param>
 /// <param name="pageSize">页面大小</param>
 /// <param name="recordCount">记录总数</param>
 /// <param name="type">主题类型</param>
 /// <param name="relativeID">相关ID</param>
 /// <param name="includeHide">是否包含隐藏主题</param>
 /// <returns>实体列表</returns>
 public List <ForumTopicEntity> GetEntities(Int32 pageIndex, Int32 pageSize, Int32 recordCount, ForumTopicType type, Int32 relativeID, Boolean includeHide)
 {
     return(this.Select()
            .Paged(pageSize, pageIndex, recordCount)
            .Querys(TOPICID, USERNAME, TITLE, TYPE, ISLOCKED, ISHIDE, RELATIVEID, LASTDATE)
            .Where(type, relativeID, includeHide)
            .OrderByDesc(LASTDATE, TOPICID)
            .ToEntityList(this));
 }
コード例 #15
0
        public async Task GetAnimeForumTopicsAsync_InvalidEnum_ShouldThrowValidationException(ForumTopicType type)
        {
            // When
            var func = _jikan.Awaiting(x => x.GetAnimeForumTopicsAsync(1, type));

            // Then
            await func.Should().ThrowExactlyAsync <JikanValidationException>();
        }
コード例 #16
0
ファイル: ForumTopicCache.cs プロジェクト: sanshengshi/sdnuoj
 /// <summary>
 /// 向缓存中写入主题总数
 /// </summary>
 /// <param name="type">主题类型</param>
 /// <param name="relativeID">相关ID</param>
 /// <param name="count">主题总数</param>
 public static void SetForumTopicCountCache(ForumTopicType type, Int32 relativeID, Int32 count)
 {
     CacheManager.Set(GetForumTopicCountCacheKey(type, relativeID), count, FORUM_TOPIC_COUNT_CACHE_TIME);
 }
コード例 #17
0
ファイル: ForumProvider.aspx.cs プロジェクト: holdbase/IES2
 public static bool ForumTopicType_Edit(ForumTopicType model)
 {
     return new ForumTopicTypeBLL().ForumTopicType_Edit(model);
 }
コード例 #18
0
ファイル: ForumTopicCache.cs プロジェクト: sanshengshi/sdnuoj
 /// <summary>
 /// 从缓存中删除主题总数
 /// </summary>
 /// <param name="type">主题类型</param>
 /// <param name="relativeID">相关ID</param>
 public static void RemoveForumTopicCountCache(ForumTopicType type, Int32 relativeID)
 {
     CacheManager.Remove(GetForumTopicCountCacheKey(type, relativeID));
 }
コード例 #19
0
 public static bool ForumTopicType_Edit(ForumTopicType model)
 {
     return(new ForumTopicTypeBLL().ForumTopicType_Edit(model));
 }
コード例 #20
0
ファイル: ForumTopicCache.cs プロジェクト: sanshengshi/sdnuoj
 /// <summary>
 /// 获取主题总数缓存KEY
 /// </summary>
 /// <param name="type">主题类型</param>
 /// <param name="relativeID">相关ID</param>
 /// <returns>缓存KEY</returns>
 private static String GetForumTopicCountCacheKey(ForumTopicType type, Int32 relativeID)
 {
     return(String.Format("{0}.{1}:id={2}", FORUM_TOPIC_COUNT_CACHE_KEY, type.ToString(), relativeID.ToString()));
 }
コード例 #21
0
ファイル: ForumTopicCache.cs プロジェクト: prostickman/sdnuoj
 /// <summary>
 /// 获取主题总数缓存KEY
 /// </summary>
 /// <param name="type">主题类型</param>
 /// <param name="relativeID">相关ID</param>
 /// <returns>缓存KEY</returns>
 private static String GetForumTopicCountCacheKey(ForumTopicType type, Int32 relativeID)
 {
     return String.Format("{0}.{1}:id={2}", FORUM_TOPIC_COUNT_CACHE_KEY, type.ToString(), relativeID.ToString());
 }