public async Task <ActionResult <PostMetaDataJsonDto> > GetSegments(PostPublishStatus status) { return(Ok(await Mediator.Send(new GetSegmentsQuery() { PostPublishStatus = status }))); }
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 })); }
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 })); }
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); } }