/// <summary> /// 拒绝首页申请 /// </summary> /// <param name="ArticleId"></param> public static void Reject(string ArticleId, string strMessage) { var article = GetArticleBySn(ArticleId); article.PublishStatus = ApproveStatus.Reject; article.FirstPageMessage = strMessage; article.ConfirmDateTime = DateTime.Now; UpdateArticle(article); ArticleListManager.RemoveArticleItemBody(article.Sn); }
/// <summary> /// 发布 /// </summary> /// <param name="ArticleId"></param> public static void Publish(string ArticleId, string MarkDownContent, string HTMLContent) { Article article = GetArticleBySn(ArticleId); if (article.IsFirstPage) { //首页的处理 article.PublishDateTime = DateTime.Now; switch (article.PublishStatus) { case ApproveStatus.None: //未发布 article.PublishStatus = ApproveStatus.Pending; UpdateArticle(article); ArticleListManager.RemoveArticleItemBody(article.Sn); ArticleContent.SaveMarkDownVersion(ArticleId, MarkDownContent, article.OwnerId, RevisionType.First); switch (UserInfo.GetUserInfoBySn(article.OwnerId).Privilege) { case UserType.Admin: case UserType.Editor: case UserType.Author: //管理员,编辑,特约作者直接获得批准 Accept(ArticleId); break; default: break; } break; case ApproveStatus.Pending: //第一次发布,还没有获得批准的 ArticleContent.SaveMarkDownVersion(ArticleId, MarkDownContent, article.OwnerId, RevisionType.First); break; case ApproveStatus.Accept: //已经发布的 ArticleContent.SaveMarkDownVersion(ArticleId, MarkDownContent, article.OwnerId, RevisionType.Current); break; case ApproveStatus.Reject: //拒绝的,变成待审核状态 article.PublishStatus = ApproveStatus.Pending; UpdateArticle(article); ArticleListManager.RemoveArticleItemBody(article.Sn); ArticleContent.SaveMarkDownVersion(ArticleId, MarkDownContent, article.OwnerId, RevisionType.First); break; default: break; } } }
/// <summary> /// 接受首页申请 /// </summary> /// <param name="ArticleId"></param> public static void Accept(string ArticleId) { var article = GetArticleBySn(ArticleId); article.PublishStatus = ApproveStatus.Accept; article.ConfirmDateTime = DateTime.Now; article.FirstPageMessage = "审核通过"; UpdateArticle(article); ArticleListManager.RemoveArticleItemBody(article.Sn); var md = ArticleContent.GetMarkDown(ArticleId, RevisionType.First); md.Revision = RevisionType.Current; ArticleContent.InsertArticleContent(md, md.OwnerId); string SearchMethod = ConfigurationManager.AppSettings["SearchMethod"]; if (SearchMethod.Equals("ElasticSearch") && !article.IsPrivate) { //非私有的进行索引 SearchManager.Index(article); } }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/json"; string json = string.Empty; if (context.Session[ConstHelper.Session_USERID] == null) { var SessionTimeout = new { success = ConstHelper.Fail, message = "系统超时,请重新登陆", }; json = JsonConvert.SerializeObject(SessionTimeout); context.Response.Write(json); return; } string strArticleID = context.Request.Unvalidated.Form["ArticleID"]; string strMarkDown = context.Request.Unvalidated.Form["Content"]; string strHTML = context.Request.Unvalidated.Form["HTML"]; Article article = Article.GetArticleBySn(strArticleID); if (!article.OwnerId.Equals(context.Session[ConstHelper.Session_USERID].ToString())) { var NotTheOwner = new { success = ConstHelper.Fail, message = "你所编辑的文章的所有者和您的登陆用户不匹配", }; json = JsonConvert.SerializeObject(NotTheOwner); context.Response.Write(json); return; } ArticleContent.SaveMarkDownVersion(strArticleID, strMarkDown, article.Sn, RevisionType.Draft); ArticleContent.SaveHTMLVersion(strArticleID, strHTML, article.Sn); if (article.IsFirstPage) { //首页发布处理 Article.Publish(strArticleID, strMarkDown, strHTML); } else { //非首页处理 ArticleContent.SaveMarkDownVersion(strArticleID, strMarkDown, article.Sn, RevisionType.Current); } if (!article.IsPrivate && !article.IsFirstPage) { //公开非首页,变成发布状态 article.PublishStatus = ApproveStatus.Accept; article.PublishDateTime = System.DateTime.Now; if (article.IsPutToMyTopic) { //发布后则加入到自己专题 var topic = Topic.GetTopicByAccountId(context.Session[ConstHelper.Session_USERID].ToString()); if (topic != null) { TopicArticle.InsertTopicArticle(new TopicArticle() { ArticleID = article.Sn, TopicID = topic.Sn, PublishStatus = ApproveStatus.NotNeed }); } } Article.UpdateArticle(article); ArticleListManager.RemoveArticleItemBody(article.Sn); } var Success = new { success = ConstHelper.Success, message = "保存成功", }; json = JsonConvert.SerializeObject(Success); context.Response.Write(json); }
public ActionResult ArticleEdit(FormCollection collection) { if (Session[ConstHelper.Session_USERID] == null) { return(Redirect("/Home/Index")); } string ownerId = Session[ConstHelper.Session_USERID].ToString(); string ArticleId = Request.QueryString["ArticleId"]; //Article Article NewArticle = new Article() { OwnerId = ownerId, CollectionID = Request.QueryString[nameof(Article.CollectionID)], Title = collection[nameof(Article.Title)], CustomTagList = collection[nameof(Article.CustomTagList)], IsFirstPage = collection[nameof(Article.IsFirstPage)] != null, IsCloseComment = collection[nameof(Article.IsCloseComment)] != null, IsOriginal = collection[nameof(Article.IsOriginal)] != null, IsPrivate = collection[nameof(Article.IsPrivate)] != null, AdvLink = collection[nameof(Article.AdvLink)], AdvText = collection[nameof(Article.AdvText)], AdvImageUrl = collection[nameof(Article.AdvImageUrl)], Catalog = collection[nameof(Article.Catalog)], IsNeedTopicApproval = collection[nameof(Article.IsNeedTopicApproval)] != null, IsPutToMyTopic = collection[nameof(Article.IsPutToMyTopic)] != null, IsTopicable = collection[nameof(Article.IsTopicable)] != null, IsEnableAliPay = collection[nameof(Article.IsEnableAliPay)] != null, }; NewArticle.Title = NewArticle.Title.Trim(); NewArticle.CustomTagList = NewArticle.CustomTagList.Trim(); NewArticle.TagName = TagUtility.getTagsFromTitle(NewArticle.Title); NewArticle.Level = (ArticleLevel)System.Enum.Parse(typeof(ArticleLevel), collection["Level"]); ViewData.Model = NewArticle; if (NewArticle.Title.Length < 5) { ViewData.ModelState.AddModelError("Title", "标题字数过少"); return(View()); } if (NewArticle.IsFirstPage) { if (NewArticle.IsCloseComment) { ViewData.ModelState.AddModelError("IsCloseComment", "关闭评论的文章无法发布到首页"); return(View()); } if (!NewArticle.IsOriginal) { ViewData.ModelState.AddModelError("IsOriginal", "转载的文章无法发布到首页"); return(View()); } if (NewArticle.IsPrivate) { ViewData.ModelState.AddModelError("IsPrivate", "私有的文章无法发布到首页"); return(View()); } } if (NewArticle.IsPrivate) { if (NewArticle.IsTopicable || NewArticle.IsPutToMyTopic) { ViewData.ModelState.AddModelError("IsTopicable", "私有文章无法被专题收录"); return(View()); } } if (NewArticle.IsNeedTopicApproval && !NewArticle.IsTopicable) { ViewData.ModelState.AddModelError("IsNeedTopicApproval", "不能被收录到专题的文章无法设定收录审核"); return(View()); } if (string.IsNullOrEmpty(ArticleId)) { ViewBag.Title = "新建"; if (NewArticle.IsPrivate) { NewArticle.PublishStatus = ApproveStatus.NotNeed; } else { NewArticle.PublishStatus = ApproveStatus.None; } NewArticle.TagName = TagUtility.GetTagNameList(NewArticle.Title, NewArticle.CustomTagList); var SerialNumber = Article.InsertArticle(NewArticle, ownerId); //加入草稿,保证可以编辑 ArticleContent.InsertArticleContent( new ArticleContent() { Revision = RevisionType.Draft, ArticleID = SerialNumber, ContentType = ArticleContent.MarkDown }, ownerId); if (NewArticle.IsPrivate) { //私人的,没有发布的概念,当前版本也建立好 ArticleContent.InsertArticleContent( new ArticleContent() { Revision = RevisionType.Current, ArticleID = SerialNumber, ContentType = ArticleContent.MarkDown }, ownerId); //私人的,没有发布的概念,当前版本也建立好 ArticleContent.InsertArticleContent( new ArticleContent() { Revision = RevisionType.Current, ArticleID = SerialNumber, ContentType = ArticleContent.HTML }, ownerId); } //转移到EditPost return(Redirect("MarkDownEditor?ArticleID=" + SerialNumber)); } else { var OldArticle = Article.GetArticleBySn(ArticleId); OldArticle.Title = NewArticle.Title; OldArticle.CustomTagList = NewArticle.CustomTagList; OldArticle.TagName = TagUtility.GetTagNameList(OldArticle.Title, OldArticle.CustomTagList); //考虑到如果是非首页文章,没有发布审核环节 //如果已经发布的文章,不允许更改IsFirstPage if (OldArticle.IsPrivate && !NewArticle.IsPrivate) { //旧的是私有,新的不是私有 //必须将状态改为初始化,不然会饶过审核系统 OldArticle.PublishStatus = ApproveStatus.None; } if (OldArticle.PublishStatus != ApproveStatus.Accept) { //已经发布的公开的文章不允许 //1. 修改为首页或者私有 OldArticle.IsFirstPage = NewArticle.IsFirstPage; OldArticle.IsPrivate = NewArticle.IsPrivate; //2. 修改专题 OldArticle.IsTopicable = NewArticle.IsTopicable; OldArticle.IsPutToMyTopic = NewArticle.IsPutToMyTopic; OldArticle.IsNeedTopicApproval = NewArticle.IsNeedTopicApproval; //3 .推广 OldArticle.AdvLink = NewArticle.AdvLink; OldArticle.AdvText = NewArticle.AdvText; OldArticle.AdvImageUrl = NewArticle.AdvImageUrl; } OldArticle.IsOriginal = NewArticle.IsOriginal; OldArticle.IsCloseComment = NewArticle.IsCloseComment; OldArticle.Level = NewArticle.Level; OldArticle.Catalog = NewArticle.Catalog; Article.UpdateArticle(OldArticle); ArticleListManager.RemoveArticleItemBody(ArticleId); ViewBag.Title = "修改"; return(Redirect("/PostEdit/PostList?CollectionId=" + NewArticle.CollectionID)); } }