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())); }
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))); }
/// <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); }
private static ForumTopicInfo GetTopicInfo(DataRow dr) { ForumTopicInfo model = new ForumTopicInfo(); ReflectionHelper.Fill(dr, model); return(model); }
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); }
/// <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); }
/// <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); }
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); //同上 } }
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"; //} }
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)); }
/// <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); }
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)); }
/// <summary> /// 处理帖子前面那个文件夹图片 /// </summary> /// <param name="topicInfo"></param> private static void LoadTopicFolder(ForumTopicInfo topicInfo) { LoadTopicFolder(15, topicInfo); }
/// <summary> /// 获取论题的所有详细信息 /// </summary> /// <param name="id">论题编号</param> /// <returns></returns> public static ForumTopicInfo ForumTopic_Info_Get(ForumTopicInfo model) { return new ForumTopicInfo(); }