Browse Source

Merge pull request #21478 from abpframework/auto-merge/rel-9-0/3247

Merge branch dev with rel-9.0
pull/21484/head
maliming 2 years ago
committed by GitHub
parent
commit
7ba1dc279d
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 5
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Pages/PageCacheItem.cs
  2. 17
      modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKitPageRouteValueTransformer.cs

5
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/PageCacheItem.cs → modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Pages/PageCacheItem.cs

@ -3,10 +3,11 @@ using Volo.Abp.ObjectExtending;
namespace Volo.CmsKit.Pages; namespace Volo.CmsKit.Pages;
[Serializable]
public class PageCacheItem : ExtensibleObject public class PageCacheItem : ExtensibleObject
{ {
public Guid Id { get; set; } public Guid Id { get; set; }
public string Title { get; set; } public string Title { get; set; }
public string Slug { get; set; } public string Slug { get; set; }
@ -23,4 +24,4 @@ public class PageCacheItem : ExtensibleObject
{ {
return $"CmsPage_{slug}"; return $"CmsPage_{slug}";
} }
} }

17
modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKitPageRouteValueTransformer.cs

@ -2,9 +2,11 @@
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc.Routing; using Microsoft.AspNetCore.Mvc.Routing;
using Microsoft.AspNetCore.Routing; using Microsoft.AspNetCore.Routing;
using Volo.Abp.Caching;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
using Volo.Abp.Features; using Volo.Abp.Features;
using Volo.CmsKit.Features; using Volo.CmsKit.Features;
using Volo.CmsKit.Pages;
using Volo.CmsKit.Public.Pages; using Volo.CmsKit.Public.Pages;
namespace Volo.CmsKit.Public.Web.Pages; namespace Volo.CmsKit.Public.Web.Pages;
@ -13,14 +15,16 @@ public class CmsKitPageRouteValueTransformer : DynamicRouteValueTransformer, ITr
{ {
protected IFeatureChecker FeatureChecker { get; } protected IFeatureChecker FeatureChecker { get; }
protected IPagePublicAppService PagePublicAppService { 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; FeatureChecker = featureChecker;
PagePublicAppService = pagePublicAppService; 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) 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 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) if (exist)
{ {
@ -40,4 +49,4 @@ public class CmsKitPageRouteValueTransformer : DynamicRouteValueTransformer, ITr
return values; return values;
} }
} }

Loading…
Cancel
Save