示例#1
0
        public ArticleDetailResultDto GetDetail(ArticleGetDetailQuery query)
        {
            var articleId   = new ArticleId(query.ArticleId);
            var article     = articleRepository.Find(articleId);
            var transformer = new ArticleToDtoTransformer();
            var dto         = article.Match(x => Option <ArticleDto> .Create(x.Transform(transformer)), Option <ArticleDto> .None);

            return(new ArticleDetailResultDto(dto));
        }
示例#2
0
        public ActionResult Detail(long?id)
        {
            if (!id.HasValue)
            {
                return(RedirectToAction("MyList"));
            }
            var articleId    = id.Value;
            var query        = new ArticleGetDetailQuery(articleId);
            var detailResult = articleService.GetDetail(query);
            var optArticle   = detailResult.Article;
            var article      = optArticle.Match(
                x => new ArticleDto(x.Id, x.Title, x.Body),
                () => throw new TargetIdNotFoundException(articleId)
                );

            return(View(article));
        }