Exemplo n.º 1
0
    private async Task<PagedQueryResult<BlogPostSummary>> MapBlogPostsAsync(
        PagedQueryResult<CustomEntityRenderSummary> customEntityResult,
        PublishStatusQuery ambientEntityPublishStatusQuery)
    {
      var blogPosts = new List<BlogPostSummary>();

      var imageAssetIds = customEntityResult
          .Items
          .Select(i => (BlogPostDataModel)i.Model)
          .Where(m => m.ThumbnailImageAssetId != null)
          .Select(m => m.ThumbnailImageAssetId.Value)
          .Distinct();

      var imageLookup = await _contentRepository
          .ImageAssets()
          .GetByIdRange(imageAssetIds)
          .AsRenderDetails()
          .ExecuteAsync();

      foreach (var customEntity in customEntityResult.Items)
      {
        var model = (BlogPostDataModel)customEntity.Model;

        var blogPost = new BlogPostSummary();
        blogPost.Title = customEntity.Title;
        blogPost.ShortDescription = model.ShortDescription;
        blogPost.ThumbnailImageAsset = imageLookup.GetOrDefault(model.ThumbnailImageAssetId);
        blogPost.FullPath = customEntity.PageUrls.FirstOrDefault();
        blogPost.PostDate = customEntity.PublishDate;

        blogPosts.Add(blogPost);
      }

      return customEntityResult.ChangeType(blogPosts);
    }
Exemplo n.º 2
0
        public void GetBlogPost(Guid blogPostId)
        {
            var blogPost = _blogDbContext
                           .BlogPosts
                           .Select(b => new BlogPostEntity {
                Id        = b.Id,
                Title     = b.Title,
                Body      = b.Body,
                CreatedAt = b.CreatedAt,
                Tags      = b.Tags,
                Comments  = b.Comments
            })
                           .SingleOrDefault(b => b.Id == blogPostId);

            BlogPost = new BlogPostSummary(blogPost.Id, blogPost.CreatedAt, blogPost.Title, blogPost.Body, blogPost.Tags);
            Comments = blogPost.Comments.ToList();
        }