Example #1
0
        protected string addArticleToPublished(Article article)
        {
            using (var db = new BaseDbContext())
            {
                var _article = ArticlePublished.makeNewArticleByCloningContentAndVersion(article);
                _article.isPublished      = true;
                _article.datePublished    = DateTimeExtensions.GetServerTime();
                _article.datePublishStart = article.datePublishStart;
                _article.datePublishEnd   = article.datePublishEnd;
                _article.publishedBy      = SessionPersister.account.AccountID;
                db.articlePublishedDb.Add(_article);

                var articles = ArticleDbContext.getInstance().findAllLocaleArticlesByBaseArticleAndVersion(article);
                foreach (var __article in articles)
                {
                    var ___article = ArticlePublished.makeNewArticleByCloningContentAndVersion(__article);
                    ___article.isPublished      = true;
                    ___article.datePublished    = DateTimeExtensions.GetServerTime();
                    ___article.datePublishStart = article.datePublishStart;
                    ___article.datePublishEnd   = article.datePublishEnd;
                    ___article.publishedBy      = SessionPersister.account.AccountID;
                    db.articlePublishedDb.Add(___article);
                }
                db.SaveChanges();

                return(null);
            }
        }
        public ActionResult DeleteConfirmed(int id)
        {
            ArticlePublished articlePublished = db.ArticlePublisheds.Find(id);

            db.ArticlePublisheds.Remove(articlePublished);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "ArticleId,UserId,DateTime,IP")] ArticlePublished articlePublished)
 {
     if (ModelState.IsValid)
     {
         db.Entry(articlePublished).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.ArticleId = new SelectList(db.articles, "id", "title", articlePublished.ArticleId);
     ViewBag.UserId    = new SelectList(db.Users, "id", "Name", articlePublished.UserId);
     return(View(articlePublished));
 }
        // GET: ArticlePublished/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ArticlePublished articlePublished = db.ArticlePublisheds.Find(id);

            if (articlePublished == null)
            {
                return(HttpNotFound());
            }
            return(View(articlePublished));
        }
        // GET: ArticlePublished/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ArticlePublished articlePublished = db.ArticlePublisheds.Find(id);

            if (articlePublished == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ArticleId = new SelectList(db.articles, "id", "title", articlePublished.ArticleId);
            ViewBag.UserId    = new SelectList(db.Users, "id", "Name", articlePublished.UserId);
            return(View(articlePublished));
        }
        public ActionResult Create(ArticlePublished articlePublished)
        {
            articlePublished.UserId   = (int)Session["id"];
            articlePublished.DateTime = DateTime.Now;
            articlePublished.IP       = Request.UserHostAddress;

            if (ModelState.IsValid)
            {
                db.ArticlePublisheds.Add(articlePublished);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.ArticleId = new SelectList(db.articles, "id", "title", articlePublished.ArticleId);
            return(View(articlePublished));
        }
 protected override IEnumerable <CommandDefinition> GetCommand(object evt)
 {
     return(evt switch
     {
         ArticlePublished e => ArrayOf(new ArticleInsertCommand(e).Command, new TagBatchInsert(e).Command),
         ArticleDeleted e => ArrayOf(
             new CommandDefinition("delete from Tags where ArticleId=@ArticleId", e),
             new CommandDefinition("delete from Favorites where ArticleId=@ArticleId", e),
             new CommandDefinition("delete from Articles where ArticleId=@ArticleId", e)),
         ArticleFavorited e => ArrayOf(
             new CommandDefinition("insert into Favorites (ArticleId, UserId) values (@ArticleId, @UserId)", e),
             new CommandDefinition("update Articles set FavoriteCount=FavoriteCount+1 where ArticleId=@ArticleId", e)),
         ArticleUnfavorited e => ArrayOf(
             new CommandDefinition("delete from Favorites where ArticleId=@ArticleId and UserId=@UserId", e),
             new CommandDefinition("update Articles set FavoriteCount=FavoriteCount-1 where ArticleId=@ArticleId", e)),
         BodyUpdated e => ArrayOf(new CommandDefinition("update Articles set Body=@Body, UpdatedDate=@UpdatedAt where ArticleId=@ArticleId", e)),
         DescriptionUpdated e => ArrayOf(new CommandDefinition("update Articles set Description=@Description, UpdatedDate=@UpdatedAt where ArticleId=@ArticleId", e)),
         TitleUpdated e => ArrayOf(new CommandDefinition("update Articles set Title=@Title, TitleSlug=@TitleSlug, UpdatedDate=@UpdatedAt where ArticleId=@ArticleId", e)),
         _ => Array.Empty <CommandDefinition>()
     });
 public virtual async Task ReactAsync(ArticlePublished msg, IUnitOfWork uow)
 {
     await dispatcher.DispatchPayloadAsync(this, msg.Article);
 }
Example #9
0
        public void Tell(ArticlePublished msg)
        {
            var mediator = DistributedPubSub.Get(system).Mediator;

            mediator.Tell(new Publish(ReactorBucketSupervisor.GetInternalPublicationTopic(msg.ReactorBucket), msg));
        }
        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);
        }
Example #11
0
 /// <summary>
 /// Route the message to a child ReactorActor who will actually update the reactor
 /// </summary>
 /// <param name="msg"></param>
 /// <returns></returns>
 private Task OnArticlePublishedAsync(ArticlePublished msg)
 {
     Context.ActorSelection(ReactorActorsRelativeAddress).Tell(msg);
     return(Task.CompletedTask);
 }