Exemplo n.º 1
0
        public ViewResult Article(int?id)
        {
            var article   = _articleQueryService.FindOne((int)id);
            var viewModel = new ArticleViewModel()
            {
                ArticleId        = article.Id,
                ArticleTags      = article.ArticleTags,
                ArticleTitle     = article.Title,
                Content          = article.Content,
                LastUpdate       = article.LastUpdate,
                ReadCount        = article.ReadCount,
                RealName         = HistoryUser.RealName,
                FullArticleTitle = article.Title,
                UrlQuoteUrl      = article.UrlQuoteUrl,
                CreateTime       = article.CreateDate,
                CommentCount     = article.CommentCount,
                Domain           = article.Domain,
                UserHeadImg      = article.UserHeadImg,
                ArticleTypeId    = article.ArticleTypeId,
                ArticleTypeName  = article.ArticleTypeName
            };

            // 更新阅读次数
            try
            {
                using (var transaction = UnitOfWork.Begin())
                {
                    _processor.Process <UpdateArticleCommand>(new UpdateArticleCommand(article.Id)
                    {
                        ReadCount     = ++article.ReadCount,
                        ArticleTagIds = article.ArticleTags.Select(x => x.Key).ToArray(),
                        ArticleTypeId = article.ArticleTypeId,
                        Content       = article.Content,
                        IsShow        = article.IsShow,
                        Title         = article.Title,
                        ContentDesc   = article.ContentDesc,
                        UrlQuoteUrl   = article.UrlQuoteUrl
                    });
                    transaction.Commit();
                }
            }
            catch (Exception ex)
            {
                // 记录日志
                LogServer.Error("更新阅读次数失败", ex.Message, HttpContext.Request.Path);
            }
            ViewBag.IsLogin    = IsLogin;
            ViewData["domain"] = HistoryUser.Domain;
            return(View("Article", viewModel));
        }