public async Task <IActionResult> Article(int articleId, string code) { var command = new ViewArticleCommand(articleId, "TODO"); var article = await articleService.ViewArticle(command); var bucket = new Dictionary <int, List <ArticleComment> >(); // 构建评论结构,方便渲染 var postComments = new List <ArticleComment>(); article.Comments.ForEach(it => { if (it.RootId != null) { bucket[it.RootId.Value] ??= new List <ArticleComment>(); bucket[it.RootId.Value].Add(it); } else { postComments.Add(it); } } ); ViewBag.Title = DataTools.MakeWebTitle(article.Title); ViewBag.Email = Request.Cookies["email"] ?? string.Empty; ViewBag.Website = Request.Cookies["website"] ?? string.Empty; ViewBag.Name = Request.Cookies["name"] ?? string.Empty; return(EnhancedView("Article", new ArticleViewModel(article, postComments, bucket))); }
public async Task <ArticleData> ViewArticle(ViewArticleCommand command) { var article = await this.articleRepository.GetAsync(command.articleId); article.Access("TODO-IP"); return(mapper.Map <ArticleData>(article)); }