Example #1
0
 public IDataReader GetDebatePostList(int tid, int opinion, int pageSize, int pageIndex, string postTableId, PostOrderType postOrderType)
 {
     DbParameter[] parms = {
                                 DbHelper.MakeInParam("@tid", (DbType)SqlDbType.Int, 4, tid),
                                 DbHelper.MakeInParam("@opinion", (DbType)SqlDbType.Int, 4, opinion),
                                 DbHelper.MakeInParam("@pagesize", (DbType)SqlDbType.Int, 4, pageSize),
                                 DbHelper.MakeInParam("@pageindex", (DbType)SqlDbType.Int, 4, pageIndex)
                           };
     string commandText = string.Format("{0}getdebatepostlist{1}", BaseConfigs.GetTablePrefix, postTableId);
     return DbHelper.ExecuteReader(CommandType.StoredProcedure, commandText, parms);
 }
Example #2
0
        public IDataReader GetDebatePostList(int tid, int opinion, int pageSize, int pageIndex, string postTableName, PostOrderType postOrderType)
        {
            string orderField = "diggs";
            string orderByASC = " ASC";

            if (postOrderType.Orderfield == PostOrderType.OrderFiled.PostDateTime)
                orderField = "postdatetime";

            if (postOrderType.Orderdirection == OrderDirection.DESC)
                orderByASC = " DESC";

            DbParameter[] parms = {
                                        DbHelper.MakeInParam("@tid", DbType.Int32, 4, tid),
                                        DbHelper.MakeInParam("@opinion", DbType.Int32, 4, opinion),
                                        DbHelper.MakeInParam("@pagesize", DbType.Int32, 4, pageSize),
                                        DbHelper.MakeInParam("@pageindex", DbType.Int32, 4, pageIndex),
                                        DbHelper.MakeInParam("@posttablename", DbType.AnsiString, 20, postTableName),
                                        DbHelper.MakeInParam("@orderby", DbType.AnsiString, 20, orderField),
                                        DbHelper.MakeInParam("@ascdesc", DbType.AnsiString, 5, orderByASC)
                                  };

            string sql = string.Format("{0}getdebatepostlist", BaseConfigs.GetTablePrefix);

            return DbHelper.ExecuteReader(CommandType.StoredProcedure, sql, parms);
        }
Example #3
0
        private static List<ShowtopicPagePostInfo> GetDebatePostList(PostpramsInfo postpramsInfo, out List<ShowtopicPageAttachmentInfo> attachList, 
            bool isModer, int debateOpinion, PostOrderType postOrderType)
        {
            List<ShowtopicPagePostInfo> postList = new List<ShowtopicPagePostInfo>();
            attachList = new List<ShowtopicPageAttachmentInfo>();
            StringBuilder attachmentpidlist = new StringBuilder();
            StringBuilder pidList = new StringBuilder();
            postList = Data.Debates.GetDebatePostList(postpramsInfo, debateOpinion, postOrderType);

            //当因冗余字段不准导致未取得分页信息时,修正冗余字段,并取最后一页
            if (postList.Count == 0 && postpramsInfo.Pageindex > 1)
            {
                int postcount = Data.Debates.GetRealDebatePostCount(postpramsInfo.Tid, debateOpinion);

                postpramsInfo.Pageindex = postcount % postpramsInfo.Pagesize == 0 ? postcount / postpramsInfo.Pagesize : postcount / postpramsInfo.Pagesize + 1;

                postList = Data.Debates.GetDebatePostList(postpramsInfo, debateOpinion, postOrderType);
            }

            StringBuilder attachPidList = new StringBuilder();

            foreach (ShowtopicPagePostInfo post in postList)
            {
                pidList.AppendFormat("{0},", post.Pid);
                if (post.Attachment > 0)
                    attachPidList.AppendFormat("{0},", post.Pid);
            }

            attachList = Attachments.GetAttachmentList(postpramsInfo, attachPidList.ToString().TrimEnd(','));

            Dictionary<int, int> postdiggs = GetPostDiggs(pidList.ToString().Trim(','));
            foreach (ShowtopicPagePostInfo post in postList)
            {
                if (postdiggs.ContainsKey(post.Pid))
                    post.Diggs = postdiggs[post.Pid];
            }

            Posts.ParsePostListExtraInfo(postpramsInfo, attachList, isModer, postList);

            return postList;
        }
Example #4
0
 /// <summary>
 /// 返回辩论帖子列表
 /// </summary>
 /// <param name="postpramsInfo">参数对象</param>
 /// <param name="debateOpinion">辩论正反观点</param>
 /// <param name="postOrderType">排序类型</param>
 /// <returns></returns>
 public static List<ShowtopicPagePostInfo> GetDebatePostList(PostpramsInfo postpramsInfo, int debateOpinion, PostOrderType postOrderType)
 {
     IDataReader reader = DatabaseProvider.GetInstance().GetDebatePostList(postpramsInfo.Tid, debateOpinion, postpramsInfo.Pagesize, postpramsInfo.Pageindex, PostTables.GetPostTableId(postpramsInfo.Tid), postOrderType);
     return Posts.LoadPostList(postpramsInfo, reader);
 }
Example #5
0
 public IDataReader GetDebatePostList(PostpramsInfo postpramsInfo, int opinion, int pageSize, int pageIndex, string postTableId, PostOrderType postOrderType)
 {
     int posterid = postpramsInfo.Condition == "" ? 0 : Convert.ToInt32(postpramsInfo.Condition.Substring(postpramsInfo.Condition.IndexOf("=") + 1).Trim());
     DbParameter[] parms = {
                                 DbHelper.MakeInParam("@tid", (DbType)SqlDbType.Int, 4, postpramsInfo.Tid),
                                 DbHelper.MakeInParam("@opinion", (DbType)SqlDbType.Int, 4, opinion),
                                 DbHelper.MakeInParam("@pagesize", (DbType)SqlDbType.Int, 4, pageSize),
                                 DbHelper.MakeInParam("@pageindex", (DbType)SqlDbType.Int, 4, pageIndex)
                           };
     string commandText = string.Format("{0}getdebatepostlist{1}", BaseConfigs.GetTablePrefix, postTableId);
     return DbHelper.ExecuteReader(CommandType.StoredProcedure, commandText, parms);
 }
Example #6
0
        private static List<ShowtopicPagePostInfo> GetDebatePostList(PostpramsInfo postpramsInfo, out List<ShowtopicPageAttachmentInfo> attachmentlist, bool ismoder, int debateOpinion, PostOrderType postOrderType)
        {
            List<ShowtopicPagePostInfo> postcoll = new List<ShowtopicPagePostInfo>();
            attachmentlist = new List<ShowtopicPageAttachmentInfo>();
            StringBuilder attachmentpidlist = new StringBuilder();
            StringBuilder pidlist = new StringBuilder();
            IDataReader reader = DatabaseProvider.GetInstance().GetDebatePostList(postpramsInfo.Tid, debateOpinion, postpramsInfo.Pagesize, postpramsInfo.Pageindex, Posts.GetPostTableName(postpramsInfo.Tid), postOrderType);

            postcoll = Posts.ParsePostList(postpramsInfo, attachmentlist, ismoder, postcoll, reader, attachmentpidlist);

            //当因冗余字段不准导致未取得分页信息时,修正冗余字段,并取最后一页
            if (postcoll.Count == 0 && postpramsInfo.Pageindex > 1)
            {
                int postcount = DatabaseProvider.GetInstance().ReviseDebateTopicDiggs(postpramsInfo.Tid, debateOpinion);

                postpramsInfo.Pageindex = postcount % postpramsInfo.Pagesize == 0 ? postcount / postpramsInfo.Pagesize : postcount / postpramsInfo.Pagesize + 1;

                reader = DatabaseProvider.GetInstance().GetDebatePostList(postpramsInfo.Tid, debateOpinion, postpramsInfo.Pagesize, postpramsInfo.Pageindex, Posts.GetPostTableName(postpramsInfo.Tid), postOrderType);

                postcoll = Posts.ParsePostList(postpramsInfo, attachmentlist, ismoder, postcoll, reader, attachmentpidlist);
            }

           

            foreach (ShowtopicPagePostInfo post in postcoll)
            {
                pidlist.AppendFormat("{0},", post.Pid);
            }

            Dictionary<int, int> postdiggs = GetPostDiggs(pidlist.ToString().Trim(','));
            foreach (ShowtopicPagePostInfo post in postcoll)
            {
                if (postdiggs.ContainsKey(post.Pid))
                {
                    post.Diggs = postdiggs[post.Pid];
                }
            }
            return postcoll;
        }