/// <summary> /// PDF用 /// </summary> /// <param name="ArticleId"></param> /// <returns></returns> public ActionResult SimplePDF(string ArticleId) { if (string.IsNullOrEmpty(ArticleId)) { return(Redirect("/")); } var articlebody = ArticleListManager.GetArticleBodyById(ArticleId); if (articlebody == null) { return(Redirect("/")); } if (!articlebody.ArticleInfo.IsPrivate && articlebody.ArticleInfo.PublishStatus != ApproveStatus.Accept) { //公开文章,但是没有发布 return(Redirect("/")); } if (articlebody.ArticleInfo.IsPrivate) { if (Session[ConstHelper.Session_USERID] == null) { return(Redirect("/")); } if (!Session[ConstHelper.Session_USERID].ToString().Equals(articlebody.ArticleInfo.OwnerId)) { return(Redirect("/")); } } ViewBag.Html = ArticleContent.GetHtmlString(ArticleId); ViewData.Model = articlebody; return(View()); }
/// <summary> /// 个人首页 /// </summary> /// <returns></returns> public ActionResult PersonIndex(int PageNo = 1) { if (Session[ConstHelper.Session_USERID] == null) { return(Redirect("/Home/Index")); } var u = UserInfo.GetUserInfoBySn(Session[ConstHelper.Session_USERID].ToString()); ArticleListManager.ArticleQueryFilter filter = ArticleListManager.FirstPageArticleQueryFileter; //难度和分类 filter.Levelist = u.Level.Count == 0 ? null : u.Level.ToArray(); filter.Cataloglist = u.Catalog.Count == 0 ? null : u.Catalog.ToArray(); filter.ContainTag = string.IsNullOrEmpty(u.ContainTag) ? null : u.ContainTag.Split(";".ToArray()); filter.AntiTag = string.IsNullOrEmpty(u.AntiTag) ? null : u.AntiTag.Split(";".ToArray()); //TODO:标签 Pages p = new Pages(ArticleListManager.GetArticleCnt(filter), 20) { CurrentPageNo = PageNo }; var currentpageList = ArticleListManager.GetPublicListForArticleByPage(p, filter); ViewData.Model = currentpageList; ViewBag.TopArticle = ArticleListManager.GetTopArticle(); ViewBag.Pages = p; ViewBag.TopArticle = ArticleListManager.GetTopArticle(); ViewBag.AsideFirst = ASideColumnManager.MostArticleAuthor(10); ViewBag.AsideSecond = ASideColumnManager.MostHotTag(10); ViewBag.AsideThird = ASideColumnManager.HotArticle(10, 72); return(View()); }
/// <summary> /// 编辑列表 /// </summary> /// <param name="CollectionId"></param> /// <returns></returns> public ActionResult PostList(string CollectionId = "") { if (Session[ConstHelper.Session_USERID] == null) { return(Redirect("/Home/Index")); } string OwnerId = Session[ConstHelper.Session_USERID].ToString(); var collectionlist = Collection.GetCollectionListByOwnerId(OwnerId); ViewBag.CollectionId = CollectionId; ViewBag.CollectionList = collectionlist; if (collectionlist.Count == 0) { //如果没有文集,则什么都不显示 ViewData.Model = new List <ArticleItemBody>(); } else { //显示第一个或者指定文集 var CurrentCollectionId = string.IsNullOrEmpty(CollectionId) ? collectionlist[0].Sn : CollectionId; //自己的文章,则并非只是发布到首页的 var ArticleList = Article.GetArticleByColIdAndPublish(CurrentCollectionId, false); ViewData.Model = ArticleListManager.GetArticleItemBodyListByArticleList(ArticleList); ViewBag.CollectionId = CurrentCollectionId; } ViewBag.Title = "列表"; return(View()); }
/// <summary> /// 作者专题页 /// </summary> /// <param name="accountid"></param> /// <param name="PageNo"></param> /// <returns></returns> public ActionResult TopicPage(string accountid, int PageNo = 1) { if (accountid == null) { return(Redirect("/")); } var user = UserInfo.GetUserInfoBySn(accountid); if (user == null) { return(Redirect("/")); } var topic = Topic.GetTopicByAccountId(accountid); if (topic == null) { return(Redirect("/")); } var topicArticles = ArticleListManager.GetTopicArticleList(accountid, true); Pages p = new Pages(topicArticles.Count, 50); p.CurrentPageNo = PageNo; ViewBag.Pages = p; ViewData.Model = p.GetList(topicArticles); ViewBag.Title = topic.Title; return(View()); }
/// <summary> /// 收藏者 /// </summary> /// <param name="ArticleId"></param> /// <returns></returns> public ActionResult StockUserList(string ArticleId) { var articlebody = ArticleListManager.GetArticleBodyById(ArticleId); ViewData.Model = articlebody.StockAccountList; ViewBag.Title = articlebody.ArticleInfo.Title + " 收藏者"; return(View("UserList")); }
/// <summary> /// 系列教程一览 /// </summary> /// <returns></returns> public ActionResult SerialList() { ViewData.Model = Collection.getAllSerial(); ViewBag.TopArticle = ArticleListManager.GetTopArticle(); ViewBag.AsideFirst = ASideColumnManager.MostArticleAuthor(10); ViewBag.AsideSecond = ASideColumnManager.MostHotTag(10); ViewBag.AsideThird = ASideColumnManager.HotArticle(10, 72); return(View()); }
/// <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> /// <returns></returns> public ActionResult Index(string ArticleId) { if (string.IsNullOrEmpty(ArticleId)) { return(Redirect("/")); } var article = Article.GetArticleBySn(ArticleId); if (article == null) { return(Redirect("/")); } if (!article.IsPrivate && (article.PublishStatus != ApproveStatus.Accept && article.PublishStatus != ApproveStatus.NotNeed)) { //公开文章,但是没有发布 return(Redirect("/")); } if (article.IsPrivate) { if (Session[ConstHelper.Session_USERID] == null) { return(Redirect("/")); } if (!Session[ConstHelper.Session_USERID].ToString().Equals(article.OwnerId)) { return(Redirect("/")); } } //获得IP地址 var visit = new Visitor() { UserAgent = HttpContext.Request.UserAgent, UserHostAddress = HttpContext.Request.UserHostAddress, UserHostName = HttpContext.Request.UserHostName, UserLanguages = HttpContext.Request.UserLanguages.ToList(), ArticleID = ArticleId, UserInfoId = Session[ConstHelper.Session_USERID] != null ? Session[ConstHelper.Session_USERID].ToString() : null, }; if (visit.IsSpider) { Visitor.InsertSpider(visit); } else { Visitor.InsertVisitor(visit); } var articlebody = ArticleListManager.GetArticleBodyById(ArticleId); ViewData.Model = articlebody; ViewBag.CommentList = ArticleListManager.GetCommentBodyList(ArticleId); ViewBag.Title = articlebody.ArticleInfo.Title; ViewBag.AuthorId = articlebody.AuthorInfo.Sn; return(View()); }
/// <summary> /// 获得某人收藏列表 /// </summary> /// <param name="accountId"></param> /// <returns></returns> public static List <ArticleItemBody> GetStockByAccount(string accountId) { IMongoQuery AuthorQuery = Query.EQ(nameof(OwnerId), accountId); var StockList = MongoDbRepository.GetRecList <Stock>(AuthorQuery); var articleItembody = new List <ArticleItemBody>(); foreach (var stock in StockList) { articleItembody.Add(ArticleListManager.GetArticleItemBodyById(stock.ArticleID)); } return(articleItembody); }
public static void RefreshAllPDF() { foreach (var articleId in ArticleListManager.GetListForArticleId()) { string filepath = PDFFolder + articleId + ".pdf"; if (System.IO.File.Exists(filepath)) { System.IO.File.Delete(filepath); } ConvertUrlToPdf(BaseUrl + "/Article/SimplePdf?ArticleId=" + articleId, articleId); } }
/// <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="CollectionId"></param> /// <returns></returns> public ActionResult CollectionList(string CollectionId) { if (string.IsNullOrEmpty(CollectionId)) { return(Redirect("/")); } //文章展示页面,链接到该文章所属文集,所以是对于大众的,只要是 发布的 ,不论是否在首页 var ArticleList = Article.GetArticleByColIdAndPublish(CollectionId, true); ViewData.Model = ArticleListManager.GetArticleItemBodyListByArticleList(ArticleList); var Col = Collection.GetCollectionBySn(CollectionId); ViewBag.Title = Col.Title; return(View()); }
/// <summary> /// 首页文章加载 /// </summary> /// <param name="PageNo"></param> /// <returns></returns> public ActionResult Index(int PageNo = 1) { Pages p = new Pages(ArticleListManager.GetArticleCnt(ArticleListManager.FirstPageArticleQueryFileter), 20) { CurrentPageNo = PageNo }; var currentpageList = ArticleListManager.GetPublicListForArticleByPage(p, ArticleListManager.FirstPageArticleQueryFileter); ViewData.Model = currentpageList; ViewBag.TopArticle = ArticleListManager.GetTopArticle(); ViewBag.Pages = p; ViewBag.AsideFirst = ASideColumnManager.MostArticleAuthor(10); ViewBag.AsideSecond = ASideColumnManager.MostHotTag(10); ViewBag.AsideThird = ASideColumnManager.HotArticle(10, 72); return(View()); }
/// <summary> /// 管理专题 /// </summary> /// <param name="PageNo"></param> /// <returns></returns> public ActionResult ManagerTopic(int PageNo = 1) { if (Session[ConstHelper.Session_USERID] == null) { return(Redirect("/")); } string accountid = Session[ConstHelper.Session_USERID].ToString(); var topicArticles = ArticleListManager.GetTopicArticleList(accountid, false); Pages p = new Pages(topicArticles.Count, 50); p.CurrentPageNo = PageNo; ViewBag.Pages = p; ViewBag.Title = "管理专题"; ViewData.Model = p.GetList(topicArticles); return(View()); }
/// <summary> /// 检索 /// </summary> /// <returns></returns> public ActionResult Search(int PageNo = 1) { //先从Post里面获得 string KeyWord = Request.Form["txtKeyword"]; if (string.IsNullOrEmpty(KeyWord)) { //再从URL中取得 KeyWord = Request.QueryString["Keyword"]; } if (string.IsNullOrEmpty(KeyWord)) { //两次取得都为空的话,退出 return(Redirect("/")); } ViewBag.KeyWord = KeyWord; ViewBag.Title = KeyWord + "的检索结果"; string SearchMethod = ConfigurationManager.AppSettings["SearchMethod"]; var resultArticles = new List <Article>(); switch (SearchMethod) { case ConstHelper.MongoTextSearch: //设置Text索引用以检索(ElasticSearch) resultArticles = Article.Search(KeyWord); break; case ConstHelper.ElasticSearch: resultArticles = SearchManager.Search(KeyWord, nameof(Article.Title)); break; } //公开发布的文章 resultArticles = resultArticles.Where((x) => { return(!x.IsPrivate && x.PublishStatus == ApproveStatus.Accept); }).ToList(); var resultArticleItems = ArticleListManager.GetArticleItemBodyListByArticleList(resultArticles); //按照评分排序 resultArticleItems.Sort((x, y) => { return(y.Score.CompareTo(x.Score)); }); Pages p = new Pages(resultArticles.Count, 20) { CurrentPageNo = PageNo }; ViewBag.Pages = p; ViewData.Model = p.GetList(resultArticleItems); return(View()); }
/// <summary> /// 所有文章一览(公开的) /// </summary> /// <param name="PageNo"></param> /// <returns></returns> public ActionResult ArticleList(int PageNo = 1) { if (Session[ConstHelper.Session_USERID] == null || (UserType)Session[ConstHelper.Session_PRIVILEGE] != UserType.Admin) { return(Redirect("/")); } ViewBag.Title = "文章管理"; //公开的审核通过的所有文章 Pages p = new Pages(ArticleListManager.GetArticleCnt(ArticleListManager.PublicArticleQueryFilter), 50); p.CurrentPageNo = PageNo; var currentpageList = ArticleListManager.GetPublicListForArticleByPage(p, ArticleListManager.PublicArticleQueryFilter); ViewData.Model = currentpageList; ViewBag.Pages = p; return(View()); }
/// <summary> /// 标签列表 /// </summary> /// <param name="TagName"></param> /// <returns></returns> public ActionResult TagList(string TagName, int PageNo = 1) { var articles = Article.GetArticleListByTag(TagName); Pages p = new Pages(articles.Count, 50) { CurrentPageNo = PageNo }; ViewBag.TagArticleCnt = articles.Count; ViewBag.Pages = p; var articlebodys = ArticleListManager.GetArticleItemBodyListByArticleList(p.GetList(articles)); ViewBag.MostAuthorByTag = ASideColumnManager.GetMostAuthorByTag(TagName, 10); ViewData.Model = articlebodys; ViewBag.TagStockCnt = articlebodys.Sum((x) => { return(x.StockCnt); }); ViewBag.Title = TagName; return(View()); }
/// <summary> /// 文章察看 /// </summary> /// <param name="ArticleId"></param> /// <returns></returns> public ActionResult ViewArticle(string ArticleId) { if (string.IsNullOrEmpty(ArticleId)) { return(Redirect("/")); } if (Session[ConstHelper.Session_USERID] == null) { return(Redirect("/")); } if ((UserType)Session[ConstHelper.Session_PRIVILEGE] != UserType.Admin && (UserType)Session[ConstHelper.Session_PRIVILEGE] != UserType.Editor) { return(Redirect("/")); } ViewData.Model = ArticleListManager.GetArticleBodyById(ArticleId); return(View()); }
/// <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); } }
/// <summary> /// 设定首页推荐文章 /// </summary> /// <param name="ArticleId"></param> /// <returns></returns> public ActionResult SetTopArticle(string ArticleId) { if (Session[ConstHelper.Session_USERID] == null || (UserType)Session[ConstHelper.Session_PRIVILEGE] != UserType.Admin) { return(Redirect("/")); } if (string.IsNullOrEmpty(ArticleId)) { return(Redirect("/")); } ViewBag.Title = "设定首页推荐文章"; ArticleListManager.SetTopArticle(ArticleId); var config = SiteConfig.GetSiteConfigBySn("00000001"); if (config != null) { config.TopArticleID = ArticleId; SiteConfig.UpdateSiteConfig(config); } return(Redirect("/")); }
/// <summary> /// 获得配置文件内容 /// </summary> public static void GetConfig() { var config = SiteConfig.GetSiteConfigBySn("00000001"); if (config == null) { MongoDbRepository.InsertRec(new SiteConfig()); } else { if (config.CatalogItem != null && config.CatalogItem.Length != 0) { Article.CatalogItem = config.CatalogItem; } else { config.CatalogItem = Article.CatalogItem; SiteConfig.UpdateSiteConfig(config); } ArticleListManager.SetTopArticle(config.TopArticleID); } }
/// <summary> /// 作者页 /// </summary> /// <param name="accountid"></param> /// <returns></returns> public ActionResult Index(string CollectionId, string accountid) { if (accountid == null) { return(Redirect("/")); } var user = UserInfo.GetUserInfoBySn(accountid); if (user == null) { return(Redirect("/")); } var collectionlist = Collection.GetCollectionListByOwnerId(accountid); if (CollectionId == "0") { if (collectionlist.Count > 0) { CollectionId = collectionlist[0].Sn; } } ViewBag.CollectionId = CollectionId; ViewBag.CollectionList = collectionlist; if (collectionlist.Count == 0) { //如果没有文集,则什么都不显示 ViewBag.CollectionArticles = new List <Article>(); } else { //显示第一个或者指定文集 var CurrentCollectionId = string.IsNullOrEmpty(CollectionId) ? collectionlist[0].Sn : CollectionId; ArticleListManager.ArticleQueryFilter aqf = new ArticleListManager.ArticleQueryFilter() { collectionid = CurrentCollectionId, isPrivate = false, statuslist = new ApproveStatus[] { ApproveStatus.Accept, ApproveStatus.NotNeed } }; if (Session[ConstHelper.Session_USERID] != null && Session[ConstHelper.Session_USERID].ToString().Equals(accountid)) { //自己看自己 aqf.isPrivate = null; aqf.statuslist = null; } var ArticleList = ArticleListManager.GetArticleItemBodyListByArticleList(ArticleListManager.GetArticles(aqf)); ViewBag.CollectionArticles = ArticleList; } var userbody = UserManager.GetUserBody(accountid); ViewData.Model = userbody; ViewBag.Title = user.NickName; ArticleListManager.ArticleQueryFilter publicAQF = new ArticleListManager.ArticleQueryFilter() { ownid = accountid, isPrivate = false, statuslist = new ApproveStatus[] { ApproveStatus.Accept, ApproveStatus.NotNeed } }; var articles = ArticleListManager.GetArticles(publicAQF); var rankContain = TagUtility.Statistics(articles); ViewBag.PersonalTagAside = ASideColumnManager.CreateTagRankAside(rankContain, 10); ViewBag.PersonalHobbyAside = ASideColumnManager.TagHobby(accountid, 10); ViewBag.RankTagDic = rankContain.RankKeyDic; return(View()); }
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)); } }