|
|
|
@ -3,6 +3,7 @@ using System.Collections.Generic;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using Microsoft.AspNetCore.Authorization;
|
|
|
|
|
using Volo.Abp.Application.Dtos;
|
|
|
|
|
using Volo.Abp.Caching;
|
|
|
|
|
using Volo.Abp.Data;
|
|
|
|
|
using Volo.Abp.Features;
|
|
|
|
|
using Volo.Abp.GlobalFeatures;
|
|
|
|
@ -21,13 +22,17 @@ public class PageAdminAppService : CmsKitAdminAppServiceBase, IPageAdminAppServi
|
|
|
|
|
protected IPageRepository PageRepository { get; }
|
|
|
|
|
|
|
|
|
|
protected PageManager PageManager { get; }
|
|
|
|
|
|
|
|
|
|
protected IDistributedCache<PageCacheItem> PageCache { get; }
|
|
|
|
|
|
|
|
|
|
public PageAdminAppService(
|
|
|
|
|
IPageRepository pageRepository,
|
|
|
|
|
PageManager pageManager)
|
|
|
|
|
PageManager pageManager,
|
|
|
|
|
IDistributedCache<PageCacheItem> pageCache)
|
|
|
|
|
{
|
|
|
|
|
PageRepository = pageRepository;
|
|
|
|
|
PageManager = pageManager;
|
|
|
|
|
PageCache = pageCache;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public virtual async Task<PageDto> GetAsync(Guid id)
|
|
|
|
@ -67,6 +72,10 @@ public class PageAdminAppService : CmsKitAdminAppServiceBase, IPageAdminAppServi
|
|
|
|
|
public virtual async Task<PageDto> UpdateAsync(Guid id, UpdatePageInputDto input)
|
|
|
|
|
{
|
|
|
|
|
var page = await PageRepository.GetAsync(id);
|
|
|
|
|
if (page.IsHomePage)
|
|
|
|
|
{
|
|
|
|
|
await InvalidateDefaultHomePageCacheAsync(considerUow: true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await PageManager.SetSlugAsync(page, input.Slug);
|
|
|
|
|
|
|
|
|
@ -84,7 +93,13 @@ public class PageAdminAppService : CmsKitAdminAppServiceBase, IPageAdminAppServi
|
|
|
|
|
[Authorize(CmsKitAdminPermissions.Pages.Delete)]
|
|
|
|
|
public virtual async Task DeleteAsync(Guid id)
|
|
|
|
|
{
|
|
|
|
|
await PageRepository.DeleteAsync(id);
|
|
|
|
|
var page = await PageRepository.GetAsync(id);
|
|
|
|
|
if (page.IsHomePage)
|
|
|
|
|
{
|
|
|
|
|
await InvalidateDefaultHomePageCacheAsync(considerUow: true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await PageRepository.DeleteAsync(page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Authorize(CmsKitAdminPermissions.Pages.SetAsHomePage)]
|
|
|
|
@ -93,5 +108,11 @@ public class PageAdminAppService : CmsKitAdminAppServiceBase, IPageAdminAppServi
|
|
|
|
|
var page = await PageRepository.GetAsync(id);
|
|
|
|
|
|
|
|
|
|
await PageManager.SetHomePageAsync(page);
|
|
|
|
|
await InvalidateDefaultHomePageCacheAsync();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected virtual async Task InvalidateDefaultHomePageCacheAsync(bool considerUow = false)
|
|
|
|
|
{
|
|
|
|
|
await PageCache.RemoveAsync(PageConsts.DefaultHomePageCacheKey, considerUow: considerUow);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|