|  |  |  | @ -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); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |