Esempio n. 1
0
        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" }));
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 4
0
        public ActionResult ListArticlesPublished()
        {
            var items = ArticlePublishedDbContext.getInstance().findPublishedArticlesGroupByBaseVersion();

            return(View(items));
        }