Exemple #1
0
 public async Task <ActionResult <PostMetaDataJsonDto> > GetSegments(PostPublishStatus status)
 {
     return(Ok(await Mediator.Send(new GetSegmentsQuery()
     {
         PostPublishStatus = status
     })));
 }
Exemple #2
0
        public Task <IReadOnlyList <PostSegment> > ListSegmentAsync(PostPublishStatus postPublishStatus)
        {
            var spec = new PostSpec(postPublishStatus);

            return(_postRepo.SelectAsync(spec, p => new PostSegment
            {
                Id = p.Id,
                Title = p.Title,
                Slug = p.Slug,
                PubDateUtc = p.PubDateUtc,
                IsPublished = p.IsPublished,
                IsDeleted = p.IsDeleted,
                CreateOnUtc = p.CreateOnUtc,
                Hits = p.PostExtension.Hits
            }));
        }
Exemple #3
0
        public Task <IReadOnlyList <PostMetaData> > GetPostMetaListAsync(PostPublishStatus postPublishStatus)
        {
            var spec = new PostSpec(postPublishStatus);

            return(_postRepository.SelectAsync(spec, p => new PostMetaData
            {
                Id = p.Id,
                Title = p.Title,
                PubDateUtc = p.PostPublish.PubDateUtc,
                IsPublished = p.PostPublish.IsPublished,
                IsDeleted = p.PostPublish.IsDeleted,
                Revision = p.PostPublish.Revision,
                CreateOnUtc = p.CreateOnUtc,
                Hits = p.PostExtension.Hits
            }));
        }
Exemple #4
0
        public PostSpec(PostPublishStatus status)
        {
            switch (status)
            {
            case PostPublishStatus.Draft:
                AddCriteria(p => !p.PostPublish.IsPublished && !p.PostPublish.IsDeleted);
                break;

            case PostPublishStatus.Published:
                AddCriteria(p => p.PostPublish.IsPublished && !p.PostPublish.IsDeleted);
                break;

            case PostPublishStatus.Deleted:
                AddCriteria(p => p.PostPublish.IsDeleted);
                break;

            case PostPublishStatus.NotSet:
                AddCriteria(p => true);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(status), status, null);
            }
        }