public ActionResult PublishArticle(Article article) { if (ModelState.IsValid) { var datePublishStart = article.datePublishStart; var datePublishEnd = article.datePublishEnd; var item = ArticleDbContext.getInstance().findArticleByVersionAndLang(article.BaseArticleID, article.Version, "en"); if (item == null) { return(HttpNotFound()); } if (datePublishStart != null && datePublishEnd != null) { var start = datePublishStart.GetValueOrDefault(); var end = datePublishEnd.GetValueOrDefault(); if (start.CompareTo(end) > 0) { TempData["ErrorMessage"] = "Publish end date must be greater than publish start date"; return(RedirectToAction("DetailsLocale", new { baseArticleID = item.BaseArticleID, version = item.Version, lang = "en" })); } } item.datePublishStart = datePublishStart; item.datePublishEnd = datePublishEnd; var error = ArticlePublishedDbContext.getInstance().tryPublishArticle(item, true); if (error != null) { TempData["ErrorMessage"] = error; return(RedirectToAction("DetailsLocale", new { baseArticleID = item.BaseArticleID, version = item.Version, lang = "en" })); } else { TempData["Message"] = "'" + item.Name + "' Published"; return(RedirectToAction("DetailsLocale", new { baseArticleID = item.BaseArticleID, version = item.Version, lang = "en" })); } } else { foreach (ModelState modelState in ViewData.ModelState.Values) { foreach (ModelError error in modelState.Errors) { TempData["ErrorMessage"] = error.ErrorMessage; } } var item = ArticleDbContext.getInstance().findArticleByVersionAndLang(article.BaseArticleID, article.Version, "en"); return(RedirectToAction("DetailsLocale", new { baseArticleID = item.BaseArticleID, version = item.Version, lang = "en" })); } }
public ActionResult UnpublishArticle(int baseArticleID = 0, int version = 0) { var item = ArticleDbContext.getInstance().findArticleByVersionAndLang(baseArticleID, version, "en"); if (item == null) { return(HttpNotFound()); } var error = ArticlePublishedDbContext.getInstance().tryUnpublishArticle(item, true); if (error != null) { ModelState.AddModelError("", error); return(RedirectToAction("DetailsLocale", new { baseArticleID = item.BaseArticleID, version = item.Version, lang = "en" })); } else { TempData["Message"] = "'" + item.Name + "' Unpublished"; return(RedirectToAction("DetailsLocale", new { baseArticleID = item.BaseArticleID, version = item.Version, lang = "en" })); } }
public static List <LuceneSearchData> GetAll() { List <LuceneSearchData> searchData = new List <LuceneSearchData>(); List <ArticlePublished> items = ArticlePublishedDbContext.getInstance().findPublishedArticlesGroupByBaseVersion("en", "trading"); List <string> innerHTMLLinks = new List <string>(); for (int i = 0; i < items.Count; i++) { try { ArticlePublished article = items[i]; LuceneSearchData data = new LuceneSearchData(); data.is_page = 0; data.is_pdf = 0; data.is_doc = 0; data.is_docx = 0; data.is_visitor = 0; data.is_member = 0; data.is_trading = 0; if (article != null && article.categoryID != null && article.categoryID.HasValue) { data.Id = i; data.ArticleId = article.ArticleID; data.BaseArticleId = article.BaseArticleID; data.CategoryId = article.categoryID.Value; data.Url = article.category.url; data.Type = "page"; data.Name = article.Name; data.Description = article.Desc; if (data.Name == null) { continue; } if (data.Description == null) { data.Description = ""; } data.name_en = article.Name; data.desc_en = article.Desc; ArticlePublished a_zh = ArticlePublishedDbContext.getInstance().getArticlePublishedByBaseArticleID(article.BaseArticleID, "zh"); if (a_zh != null) { data.name_zh = a_zh.Name; data.desc_zh = a_zh.Desc; } ArticlePublished a_cn = ArticlePublishedDbContext.getInstance().getArticlePublishedByBaseArticleID(article.BaseArticleID, "cn"); if (a_cn != null) { data.name_cn = a_cn.Name; data.desc_cn = a_cn.Desc; } if (data.name_en == null) { data.name_en = ""; } if (data.name_zh == null) { data.name_zh = ""; } if (data.name_cn == null) { data.name_cn = ""; } if (data.desc_en == null) { data.desc_en = ""; } if (data.desc_zh == null) { data.desc_zh = ""; } if (data.desc_cn == null) { data.desc_cn = ""; } data.Description = MyRazorExtensions.Render(null, data.Description, null, true); data.desc_en = MyRazorExtensions.Render(null, data.desc_en, null, true); data.desc_zh = MyRazorExtensions.Render(null, data.desc_zh, null, true); data.desc_cn = MyRazorExtensions.Render(null, data.desc_cn, null, true); data.Description = HtmlToPlainText(data.Description); data.desc_en = HtmlToPlainText(data.desc_en); data.desc_zh = HtmlToPlainText(data.desc_zh); data.desc_cn = HtmlToPlainText(data.desc_cn); data.is_page = 1; data.is_trading = article.category.isVisibleToTradingOnly ? 1 : 0; data.is_member = article.category.isVisibleToMembersOnly ? 1 : 0; data.is_visitor = article.category.isVisibleToVisitorOnly ? 1 : 0; searchData.Add(data); List <string> innerLinks_en = LinkScanner.getInnerUrlsFromHTML(data.desc_en); List <string> innerLinks_zh = LinkScanner.getInnerUrlsFromHTML(data.desc_zh); List <string> innerLinks_cn = LinkScanner.getInnerUrlsFromHTML(data.desc_cn); innerLinks_en.AddRange(innerLinks_zh.Except(innerLinks_en)); innerLinks_zh.AddRange(innerLinks_cn.Except(innerLinks_zh)); for (var m = innerLinks_en.Count - 1; m >= 0; m--) { string link = innerLinks_en[m]; if (innerHTMLLinks.Contains(link)) { innerLinks_en.RemoveAt(m); } } for (var m = innerLinks_en.Count - 1; m >= 0; m--) { string link = innerLinks_en[m]; string name = LinkScannerParser.getFilenameFromInnerUrl(link); string ext = LinkScannerParser.getFiletypeFromInnerUrl(link); LuceneSearchData _data = new LuceneSearchData(); _data.ArticleId = 0; _data.BaseArticleId = 0; _data.CategoryId = 0; _data.is_page = 0; _data.is_pdf = 0; _data.is_doc = 0; _data.is_docx = 0; if (ext == ".pdf") { _data.is_pdf = 1; } else if (ext == ".doc") { _data.is_doc = 1; } else if (ext == ".docx") { _data.is_docx = 1; } else { continue; } string desc = LinkScannerParser.getDocumentFromInnerUrl(link); _data.is_visitor = data.is_visitor; _data.is_member = data.is_member; _data.is_trading = data.is_trading; _data.Name = name; if (name == "") { continue; } _data.name_en = ""; _data.name_zh = ""; _data.name_cn = ""; _data.Url = "/ckfinder/userfiles/files/" + _data.Name; _data.Type = ext.ToUpper(); _data.Description = desc; _data.desc_en = ""; _data.desc_zh = ""; _data.desc_cn = ""; searchData.Add(_data); } } } catch (Exception e) { AuditLogDbContext.getInstance().createAuditLog(new AuditLog { action = "Search Indexing", remarks = "Exception GetAll: " + e.Message, }); } } return(searchData); }
public ActionResult ListArticlesPublished() { var items = ArticlePublishedDbContext.getInstance().findPublishedArticlesGroupByBaseVersion(); return(View(items)); }