public ActionResult Create(Article article) { try { SplitTags(article); GetImages(article); article.PublishedBy = PrimaryUser.TwitterScreenName; article.PublishedDate = DateTime.Now; var model = new PostworthyArticleModel(PrimaryUser); model.SaveArticle(article); return Json(new { result = "success" }, JsonRequestBehavior.AllowGet); } catch { return Json(new { result = "failure" }, JsonRequestBehavior.AllowGet); } }
public void EditArticle(Article article) { string dayTag = "_" + article.PublishedDate.ToShortDateString(); CachedRepository<Article>.Instance(PrimaryUser.TwitterScreenName) .Save(TwitterModel.Instance(PrimaryUser.TwitterScreenName).ARTICLE + dayTag, article); var index = GetArticleIndex(); var articleIndex = index.Articles.Where(x => x.Key == article.UniqueKey).FirstOrDefault(); articleIndex.Title = article.Title; articleIndex.Tags = article.Tags; CachedRepository<ArticleIndex>.Instance(PrimaryUser.TwitterScreenName) .Save(TwitterModel.Instance(PrimaryUser.TwitterScreenName).ARTICLE_INDEX, index); }
public void SaveArticle(Article article) { string dayTag = "_" + article.PublishedDate.ToShortDateString(); var index = GetArticleIndex(); CachedRepository<Article>.Instance(PrimaryUser.TwitterScreenName) .Save(TwitterModel.Instance(PrimaryUser.TwitterScreenName).ARTICLE + dayTag, article); index.Articles.Add(new ArticleIndex.Index(article.PublishedDate.ToFileTimeUtc(), article.Title, article.UniqueKey, article.Tags)); CachedRepository<ArticleIndex>.Instance(PrimaryUser.TwitterScreenName) .Save(TwitterModel.Instance(PrimaryUser.TwitterScreenName).ARTICLE_INDEX, index); }
private void SplitTags(Article article) { article.Tags = article.Tags.SelectMany(t => t.Split(',')).Select(t => t.Trim()).ToList(); }
private void GetImages(Article article) { var doc = new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml(article.Content); var imgNodes = doc.DocumentNode.SelectNodes("//img"); if (imgNodes != null && imgNodes.Count > 0) { var src = imgNodes.First().Attributes["src"].Value; if (!src.ToLower().StartsWith("data:")) src = GetImageData(src) ?? src; article.Images.Add(src); } }
public ActionResult Edit(string id, Article article) { try { //article.PublishedBy = PrimaryUser.TwitterScreenName; //article.PublishedDate = DateTime.Now; SplitTags(article); GetImages(article); var model = new PostworthyArticleModel(PrimaryUser); model.EditArticle(article); var route = @Url.RouteUrl("Article", new { controller = "article", action = "details", id = article.ID(), slug = article.GetSlug() }); Response.RemoveOutputCacheItem(route); return Json(new { result = "success" }, JsonRequestBehavior.AllowGet); } catch { return Json(new { result = "failure" }, JsonRequestBehavior.AllowGet); } }