示例#1
0
        public ActionResult RenderNav(ForumInfo forumInfo, ForumTopicInfo topicInfo)
        {
            StringBuilder sbText = new StringBuilder("<div class=\"nav\">");

            sbText.Append("<a href=\"/\" title=\"首页\" class=\"nav-home\">首页</a>");
            sbText.Append("<em>›</em>");
            sbText.Append("<a href=\"/\" title=\"论坛首页\">论坛首页</a>");
            if (forumInfo != null && forumInfo.Id > 0)
            {
                //获取ForumGroupInfo
                var forumGroupInfo = ForumService.GetGroupInfo(forumInfo.GroupId);
                sbText.Append("<em>›</em>");
                sbText.AppendFormat("<a href=\"/#catalog_{1}\" title=\"{0}\">{0}</a>", forumGroupInfo.Name, forumGroupInfo.Id);

                sbText.Append("<em>›</em>");
                sbText.AppendFormat("<a href=\"/catalog/{0}.html\" title=\"{1}\">{1}</a>", forumInfo.Id, forumInfo.Name);
            }
            if (topicInfo != null && topicInfo.Id > 0)
            {
                sbText.Append("<em>›</em>");
                sbText.AppendFormat("<a href=\"/thread/{0}.html\" title=\"{1}\">{1}</a>", topicInfo.Id, topicInfo.Title);
            }
            sbText.Append("</div>");
            sbText.Append("<div class=\"clear\"></div>");
            return(Content(sbText.ToString()));
        }
示例#2
0
        public static int PostTopic(ForumTopicInfo model)
        {
            string strSQL = "INSERT INTO dbo.ForumTopics(ForumId,Title,Content,Poster,PosterId,Sticky,[Digest],IsDeleted,PostDateTime,LastPostDateTime) VALUES(@ForumId,@Title,@Content,@Poster,@PosterId,@Sticky,@Digest,@IsDeleted,GETDATE(),GETDATE());SELECT @@IDENTITY;";

            SqlParameter[] parms = ParameterHelper.GetClassSqlParameters(model);
            return(Convert.ToInt32(SQLPlus.ExecuteScalar(CommandType.Text, strSQL, parms)));
        }
示例#3
0
        /// <summary>
        /// 发表或编辑回复
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static ForumReplyInfo PostReply(ForumTopicInfo topicInfo, ForumReplyInfo replyInfo)
        {
            if (replyInfo.Id == 0)
            {
                //处理楼层
                replyInfo.Floor = topicInfo.Replies + 1;
                //添加
                replyInfo.Id = ForumTopicManage.PostReply(replyInfo);
                //Forums表
                ForumManage.UpdateReplies(replyInfo.ForumId); //回复数 + 1
                ForumManage.UpdateLastReply(replyInfo.ForumId, replyInfo.Id, replyInfo.Content, replyInfo.PostDateTime);
                ForumManage.UpdateLastPoster(replyInfo.ForumId, replyInfo.PosterId, replyInfo.Poster);

                //ForumTopics表
                ForumTopicManage.UpdateTopicRepliesCount(replyInfo.TopicId);   //回复数 + 1
                ForumTopicManage.UpdateTopicLastPoster(replyInfo.TopicId, replyInfo.PosterId, replyInfo.Poster);

                //ForumMyReply表
                ForumTopicManage.AddMyReply(replyInfo.PosterId, replyInfo.TopicId, replyInfo.Id);
            }
            else
            {
                ForumTopicManage.UpdateReply(replyInfo);
            }
            return(replyInfo);
        }
示例#4
0
        private static ForumTopicInfo GetTopicInfo(DataRow dr)
        {
            ForumTopicInfo model = new ForumTopicInfo();

            ReflectionHelper.Fill(dr, model);
            return(model);
        }
示例#5
0
        public static void UpdateTopic(ForumTopicInfo model)
        {
            string strSQL = "UPDATE ForumTopics SET ForumId = @ForumId,Title = @Title ,Content = @Content,Sticky = @Sticky,[Digest] = @Digest,IsDeleted = @IsDeleted WHERE Id = @Id";

            SqlParameter[] parms = ParameterHelper.GetClassSqlParameters(model);
            SQLPlus.ExecuteNonQuery(CommandType.Text, strSQL, parms);
        }
示例#6
0
 /// <summary>
 /// 还原主题
 /// </summary>
 /// <param name="topicInfo"></param>
 public static void RestoreTopic(ForumTopicInfo topicInfo)
 {
     if (!topicInfo.IsDeleted)
     {
         return;
     }
     //
     ForumTopicManage.RestoreTopic(topicInfo.Id);
     //更新Forums表中回复数
     ForumManage.UpdateTopics(topicInfo.ForumId, true);
 }
示例#7
0
 /// <summary>
 /// 删除主题
 /// </summary>
 /// <param name="userId"></param>
 /// <param name="topicId"></param>
 /// <returns></returns>
 public static void DeleteTopic(ForumTopicInfo topicInfo)
 {
     if (topicInfo.IsDeleted)
     {
         return;
     }
     //
     ForumTopicManage.DeleteTopic(topicInfo.Id);
     //更新Forums表中回复数
     ForumManage.UpdateTopics(topicInfo.ForumId, false);
 }
示例#8
0
 private static void LoadTopicExtensionInfo(ForumTopicInfo item)
 {
     item.PostDateTimeString = TransferDateTimeDiffToHtml(item.PostDateTime);//在这里做时间处理
     //
     LoadTopicFolder(item);
     if (item.LastPosterId == 0)
     {
         item.LastPostDateTimeString = "--";
     }
     else
     {
         item.LastPostDateTimeString = TransferDateTimeDiffCorrectToSecond(item.LastPostDateTime);   //同上
     }
 }
示例#9
0
 private static void LoadTopicFolder(int hotReplyNumber, ForumTopicInfo topicInfo)
 {
     if (DateTime.Parse(DateTime.Now.ToShortDateString()) == DateTime.Parse(topicInfo.LastPostDateTime.ToShortDateString()))
     {
         topicInfo.Folder = "new";
     }
     else
     {
         topicInfo.Folder = "old";
     }
     ///没有图片,暂时没用
     //if(topicInfo.Replies > hotReplyNumber){
     //    topicInfo.Folder += "hot";
     //}
 }
示例#10
0
        public static IPageOfList <ForumTopicInfo> TopicList(ForumSearchSetting settings)
        {
            FastPaging fp = new FastPaging();

            fp.PageIndex   = settings.PageIndex;
            fp.PageSize    = settings.PageSize;
            fp.TableName   = "ForumTopics";
            fp.TableReName = "p";
            fp.PrimaryKey  = "ID";
            fp.QueryFields = "p.*";

            StringBuilder sbCondition = new StringBuilder();

            sbCondition.AppendFormat("  ForumId = @ForumId ");
            if (!settings.ShowDeleted)
            {
                sbCondition.Append("    AND IsDeleted = 0 ");
            }
            fp.Condition   = sbCondition.ToString();
            fp.OverOrderBy = "LastPostDateTime DESC";

            SqlParameter[] parms =
            {
                new SqlParameter("@ForumId", SqlDbType.Int),
            };
            parms[0].Value = settings.ForumId;

            IList <ForumTopicInfo> list  = new List <ForumTopicInfo>();
            ForumTopicInfo         model = null;
            DataTable dt = Goodspeed.Library.Data.SQLPlus.ExecuteDataTable(CommandType.Text, fp.Build2005(), parms);

            if (dt != null && dt.Rows.Count > 0)
            {
                foreach (DataRow dr in dt.Rows)
                {
                    model = GetTopicInfo(dr);
                    if (model != null)
                    {
                        list.Add(model);
                    }
                }
            }
            int count = TopicListCount(settings);

            return(new PageOfList <ForumTopicInfo>(list, settings.PageIndex, settings.PageSize, count));
        }
示例#11
0
        /// <summary>
        /// 发表或编辑帖子
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static ForumTopicInfo PostTopic(ForumTopicInfo model)
        {
            if (model.Id == 0)
            {
                //添加
                model.Id = ForumTopicManage.PostTopic(model);

                //Forums表
                ForumManage.UpdateTopics(model.ForumId);                                               //主题数+1
                ForumManage.UpdateLastTopic(model.ForumId, model.Id, model.Title, model.PostDateTime); //更新最后发表贴
                ForumManage.UpdateLastPoster(model.ForumId, model.PosterId, model.Poster);
                //ForumMyTopic表
                ForumTopicManage.AddMyTopic(model.PosterId, model.Id);
            }
            else
            {
                //编辑
                ForumTopicManage.UpdateTopic(model);
            }
            return(model);
        }
示例#12
0
        public ActionResult PulishThread(ForumTopicInfo oldModel)
        {
            #region == 发表主题 ==
            if (CECRequest.GetFormString("event_submit_do_publish") == "anything")
            {
                //发布或编辑
                var forumInfo = ForumService.Get(oldModel.ForumId);
                //检查用户是否查看的权限
                //获取通过审核的用户,只有审核通过的用户才能查看论坛
                var userInfo = UserService.Get(User.Identity.Name);
                if (!CheckApplyUserAuth(userInfo.Id, forumInfo.GroupId))
                {
                    return(new TipView()
                    {
                        Msg = ErrorMsg.APPLYNOTPASS
                    });
                }

                ViewBag.ForumInfo = forumInfo;

                //在这里多设一个
                //下面更新问oldModel就会自动变成新的实体
                int requestTopicId = oldModel.Id;

                oldModel.PosterId = userInfo.Id;
                oldModel.Poster   = userInfo.UserName;
                if (string.IsNullOrEmpty(oldModel.Title))
                {
                    ModelState.AddModelError("Title", "帖子标题不能为空!");
                }
                if (string.IsNullOrEmpty(oldModel.Content))
                {
                    ModelState.AddModelError("Content", "帖子内容不能为空!");
                }
                if (ModelState.IsValid)
                {
                    oldModel = ForumTopicService.PostTopic(oldModel);
                    string url = String.Format("/thread/{0}.html", oldModel.Id);
                    return(new TipView()
                    {
                        Msg = string.Format("{0}成功!", requestTopicId > 0 ? "编辑" : "发表"), Url = url, Success = true
                    });
                }
            }
            #endregion

            #region == 删除主题 ==
            if (CECRequest.GetFormString("event_submit_do_delete") == "anything")
            {
                //删除主题
                int    forumId   = CECRequest.GetFormInt("catalogId", 0);
                int    topicId   = CECRequest.GetFormInt("threadId", 0);
                string returnUrl = string.Format("/catalog/{0}.html", forumId);

                var forumInfo = ForumService.Get(forumId);
                //检查用户是否查看的权限
                //获取通过审核的用户,只有审核通过的用户才能查看论坛
                var userInfo = UserService.Get(User.Identity.Name);
                if (!CheckApplyUserAuth(userInfo.Id, forumInfo.GroupId))
                {
                    return(new TipView()
                    {
                        Msg = ErrorMsg.APPLYNOTPASS
                    });
                }

                var topicInfo = ForumTopicService.Get(topicId);
                if (topicInfo.Id > 0 && topicInfo.ForumId == forumId && !topicInfo.IsDeleted)
                {
                    //执行删除操作
                    ForumTopicService.DeleteTopic(topicInfo);
                    return(new TipView()
                    {
                        Msg = ErrorMsg.DELETETHREADSUCCESS, Success = true, Url = returnUrl
                    });
                }
                return(new TipView()
                {
                    Msg = ErrorMsg.NOTNORMALOPERATE, Url = returnUrl
                });
            }
            #endregion

            return(View(oldModel));
        }
示例#13
0
 /// <summary>
 /// 处理帖子前面那个文件夹图片
 /// </summary>
 /// <param name="topicInfo"></param>
 private static void LoadTopicFolder(ForumTopicInfo topicInfo)
 {
     LoadTopicFolder(15, topicInfo);
 }
示例#14
0
文件: FourmDAL.cs 项目: holdbase/IES2
 /// <summary>
 /// 获取论题的所有详细信息
 /// </summary>
 /// <param name="id">论题编号</param>
 /// <returns></returns>
 public static ForumTopicInfo ForumTopic_Info_Get(ForumTopicInfo model)
 {
     return new ForumTopicInfo();
 }