|
|
|
@ -2,9 +2,11 @@ |
|
|
|
using Microsoft.AspNetCore.Http; |
|
|
|
using Microsoft.AspNetCore.Mvc.Routing; |
|
|
|
using Microsoft.AspNetCore.Routing; |
|
|
|
using Volo.Abp.Caching; |
|
|
|
using Volo.Abp.DependencyInjection; |
|
|
|
using Volo.Abp.Features; |
|
|
|
using Volo.CmsKit.Features; |
|
|
|
using Volo.CmsKit.Pages; |
|
|
|
using Volo.CmsKit.Public.Pages; |
|
|
|
|
|
|
|
namespace Volo.CmsKit.Public.Web.Pages; |
|
|
|
@ -13,14 +15,16 @@ public class CmsKitPageRouteValueTransformer : DynamicRouteValueTransformer, ITr |
|
|
|
{ |
|
|
|
protected IFeatureChecker FeatureChecker { get; } |
|
|
|
protected IPagePublicAppService PagePublicAppService { get; } |
|
|
|
protected IDistributedCache<PageCacheItem> PageCache { get; } |
|
|
|
|
|
|
|
public CmsKitPageRouteValueTransformer(IFeatureChecker featureChecker, IPagePublicAppService pagePublicAppService) |
|
|
|
public CmsKitPageRouteValueTransformer(IFeatureChecker featureChecker, IPagePublicAppService pagePublicAppService, IDistributedCache<PageCacheItem> pageCache) |
|
|
|
{ |
|
|
|
FeatureChecker = featureChecker; |
|
|
|
PagePublicAppService = pagePublicAppService; |
|
|
|
PageCache = pageCache; |
|
|
|
} |
|
|
|
|
|
|
|
public override async ValueTask<RouteValueDictionary> TransformAsync(HttpContext httpContext, RouteValueDictionary values) |
|
|
|
public async override ValueTask<RouteValueDictionary> TransformAsync(HttpContext httpContext, RouteValueDictionary values) |
|
|
|
{ |
|
|
|
if (values.TryGetValue("slug", out var slugParameter) && slugParameter is not null) |
|
|
|
{ |
|
|
|
@ -30,7 +34,12 @@ public class CmsKitPageRouteValueTransformer : DynamicRouteValueTransformer, ITr |
|
|
|
} |
|
|
|
|
|
|
|
var slug = slugParameter.ToString().TrimStart('/'); |
|
|
|
var exist = await PagePublicAppService.DoesSlugExistAsync(slug); |
|
|
|
|
|
|
|
var exist = await PageCache.GetAsync(PageCacheItem.GetKey(slug)) != null; |
|
|
|
if (!exist) |
|
|
|
{ |
|
|
|
exist = await PagePublicAppService.DoesSlugExistAsync(slug); |
|
|
|
} |
|
|
|
|
|
|
|
if (exist) |
|
|
|
{ |
|
|
|
@ -40,4 +49,4 @@ public class CmsKitPageRouteValueTransformer : DynamicRouteValueTransformer, ITr |
|
|
|
|
|
|
|
return values; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|