|
|
|
@ -1,5 +1,6 @@ |
|
|
|
using Microsoft.AspNetCore.Authorization; |
|
|
|
using System; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Threading.Tasks; |
|
|
|
using Volo.Abp.Application.Dtos; |
|
|
|
using Volo.Abp.Application.Services; |
|
|
|
@ -17,16 +18,9 @@ namespace Volo.CmsKit.Admin.Blogs |
|
|
|
{ |
|
|
|
[RequiresGlobalFeature(typeof(BlogsFeature))] |
|
|
|
[Authorize(CmsKitAdminPermissions.BlogPosts.Default)] |
|
|
|
public class BlogPostAdminAppService |
|
|
|
: CrudAppService< |
|
|
|
BlogPost, |
|
|
|
BlogPostDto, |
|
|
|
Guid, |
|
|
|
PagedAndSortedResultRequestDto, |
|
|
|
CreateBlogPostDto, |
|
|
|
UpdateBlogPostDto> |
|
|
|
, IBlogPostAdminAppService |
|
|
|
public class BlogPostAdminAppService: CmsKitAppServiceBase, IBlogPostAdminAppService |
|
|
|
{ |
|
|
|
protected IRepository<BlogPost, Guid> Repository { get; } |
|
|
|
protected IBlogPostManager BlogPostManager { get; } |
|
|
|
protected IBlogPostRepository BlogPostRepository { get; } |
|
|
|
protected IBlogRepository BlogRepository { get; } |
|
|
|
@ -39,23 +33,19 @@ namespace Volo.CmsKit.Admin.Blogs |
|
|
|
IBlogPostRepository blogPostRepository, |
|
|
|
IBlogRepository blogRepository, |
|
|
|
IBlobContainer<BlogPostCoverImageContainer> blobContainer, |
|
|
|
ICmsUserLookupService userLookupService) : base(repository) |
|
|
|
ICmsUserLookupService userLookupService) |
|
|
|
{ |
|
|
|
Repository = repository; |
|
|
|
BlogPostManager = blogPostManager; |
|
|
|
BlogPostRepository = blogPostRepository; |
|
|
|
BlogRepository = blogRepository; |
|
|
|
BlobContainer = blobContainer; |
|
|
|
UserLookupService = userLookupService; |
|
|
|
|
|
|
|
GetListPolicyName = CmsKitAdminPermissions.BlogPosts.Default; |
|
|
|
GetPolicyName = CmsKitAdminPermissions.BlogPosts.Default; |
|
|
|
CreatePolicyName = CmsKitAdminPermissions.BlogPosts.Create; |
|
|
|
UpdatePolicyName = CmsKitAdminPermissions.BlogPosts.Update; |
|
|
|
DeletePolicyName = CmsKitAdminPermissions.BlogPosts.Delete; |
|
|
|
} |
|
|
|
|
|
|
|
[Authorize(CmsKitAdminPermissions.BlogPosts.Create)] |
|
|
|
public override async Task<BlogPostDto> CreateAsync(CreateBlogPostDto input) |
|
|
|
public virtual async Task<BlogPostDto> CreateAsync(CreateBlogPostDto input) |
|
|
|
{ |
|
|
|
var author = await UserLookupService.GetByIdAsync(CurrentUser.GetId()); |
|
|
|
|
|
|
|
@ -71,11 +61,11 @@ namespace Volo.CmsKit.Admin.Blogs |
|
|
|
|
|
|
|
await Repository.InsertAsync(blogPost); |
|
|
|
|
|
|
|
return await MapToGetOutputDtoAsync(blogPost); |
|
|
|
return ObjectMapper.Map<BlogPost, BlogPostDto>(blogPost); |
|
|
|
} |
|
|
|
|
|
|
|
[Authorize(CmsKitAdminPermissions.BlogPosts.Update)] |
|
|
|
public override async Task<BlogPostDto> UpdateAsync(Guid id, UpdateBlogPostDto input) |
|
|
|
public virtual async Task<BlogPostDto> UpdateAsync(Guid id, UpdateBlogPostDto input) |
|
|
|
{ |
|
|
|
var blogPost = await BlogPostRepository.GetAsync(id); |
|
|
|
|
|
|
|
@ -89,9 +79,10 @@ namespace Volo.CmsKit.Admin.Blogs |
|
|
|
|
|
|
|
await BlogPostManager.UpdateAsync(blogPost); |
|
|
|
|
|
|
|
return await MapToGetOutputDtoAsync(blogPost); |
|
|
|
return ObjectMapper.Map<BlogPost,BlogPostDto>(blogPost); |
|
|
|
} |
|
|
|
|
|
|
|
[Authorize(CmsKitAdminPermissions.BlogPosts.Update)] |
|
|
|
public virtual async Task SetCoverImageAsync(Guid id, RemoteStreamContent streamContent) |
|
|
|
{ |
|
|
|
await Repository.GetAsync(id); |
|
|
|
@ -102,11 +93,43 @@ namespace Volo.CmsKit.Admin.Blogs |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
[Authorize(CmsKitAdminPermissions.BlogPosts.Default)] |
|
|
|
public virtual async Task<RemoteStreamContent> GetCoverImageAsync(Guid id) |
|
|
|
{ |
|
|
|
var stream = await BlobContainer.GetAsync(id.ToString()); |
|
|
|
|
|
|
|
return new RemoteStreamContent(stream); |
|
|
|
} |
|
|
|
|
|
|
|
[Authorize(CmsKitAdminPermissions.BlogPosts.Default)] |
|
|
|
public virtual async Task<BlogPostDto> GetAsync(Guid id) |
|
|
|
{ |
|
|
|
var blogPost = await Repository.GetAsync(id); |
|
|
|
|
|
|
|
return ObjectMapper.Map<BlogPost, BlogPostDto>(blogPost); |
|
|
|
} |
|
|
|
|
|
|
|
[Authorize(CmsKitAdminPermissions.BlogPosts.Default)] |
|
|
|
public virtual async Task<PagedResultDto<BlogPostDto>> GetListAsync(PagedAndSortedResultRequestDto input) |
|
|
|
{ |
|
|
|
if (input.Sorting.IsNullOrEmpty()) |
|
|
|
{ |
|
|
|
input.Sorting = nameof(BlogPost.CreationTime) + " desc"; |
|
|
|
} |
|
|
|
|
|
|
|
var blogPosts = await Repository.GetPagedListAsync(input.SkipCount, input.MaxResultCount, input.Sorting, includeDetails: true); |
|
|
|
|
|
|
|
var count = await Repository.GetCountAsync(); |
|
|
|
|
|
|
|
return new PagedResultDto<BlogPostDto>( |
|
|
|
count, |
|
|
|
ObjectMapper.Map<List<BlogPost>, List<BlogPostDto>>(blogPosts)); |
|
|
|
} |
|
|
|
|
|
|
|
[Authorize(CmsKitAdminPermissions.BlogPosts.Delete)] |
|
|
|
public virtual async Task DeleteAsync(Guid id) |
|
|
|
{ |
|
|
|
await Repository.DeleteAsync(id); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|