Browse Source

Merge pull request #22547 from abpframework/CmsKitDynamicRouteValueTransformerBase

Try to get and change tenant in `DynamicRouteValueTransformer`.
pull/22548/head
Enis Necipoglu 1 year ago
committed by GitHub
parent
commit
5b564d4dfd
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 15
      modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKitHomePageRouteValueTransformer.cs
  2. 16
      modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKitPageRouteValueTransformer.cs
  3. 41
      modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKitDynamicRouteValueTransformerBase.cs

15
modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKitHomePageRouteValueTransformer.cs

@ -1,27 +1,32 @@
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc.Routing;
using Microsoft.AspNetCore.Routing;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Features;
using Volo.Abp.MultiTenancy;
using Volo.CmsKit.Features;
using Volo.CmsKit.Public.Pages;
using Volo.CmsKit.Public.Web.Pages.Public;
namespace Volo.CmsKit.Public.Web.Pages;
public class CmsKitHomePageRouteValueTransformer : DynamicRouteValueTransformer, ITransientDependency
public class CmsKitHomePageRouteValueTransformer : CmsKitDynamicRouteValueTransformerBase
{
protected IFeatureChecker FeatureChecker { get; }
protected IPagePublicAppService PagePublicAppService { get; }
public CmsKitHomePageRouteValueTransformer(IFeatureChecker featureChecker, IPagePublicAppService pagePublicAppService)
public CmsKitHomePageRouteValueTransformer(
ICurrentTenant currentTenant,
ITenantConfigurationProvider tenantConfigurationProvider,
IFeatureChecker featureChecker,
IPagePublicAppService pagePublicAppService)
: base(currentTenant, tenantConfigurationProvider)
{
FeatureChecker = featureChecker;
PagePublicAppService = pagePublicAppService;
}
public override async ValueTask<RouteValueDictionary> TransformAsync(HttpContext httpContext, RouteValueDictionary values)
protected async override ValueTask<RouteValueDictionary> DoTransformAsync(HttpContext httpContext, RouteValueDictionary values)
{
if (await FeatureChecker.IsEnabledAsync(CmsKitFeatures.PageEnable))
{

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

@ -1,30 +1,36 @@
using System.Threading.Tasks;
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.Abp.MultiTenancy;
using Volo.CmsKit.Features;
using Volo.CmsKit.Pages;
using Volo.CmsKit.Public.Pages;
using Volo.CmsKit.Public.Web.Pages.Public;
namespace Volo.CmsKit.Public.Web.Pages;
public class CmsKitPageRouteValueTransformer : DynamicRouteValueTransformer, ITransientDependency
public class CmsKitPageRouteValueTransformer : CmsKitDynamicRouteValueTransformerBase
{
protected IFeatureChecker FeatureChecker { get; }
protected IPagePublicAppService PagePublicAppService { get; }
protected IDistributedCache<PageCacheItem> PageCache { get; }
public CmsKitPageRouteValueTransformer(IFeatureChecker featureChecker, IPagePublicAppService pagePublicAppService, IDistributedCache<PageCacheItem> pageCache)
public CmsKitPageRouteValueTransformer(
ICurrentTenant currentTenant,
ITenantConfigurationProvider tenantConfigurationProvider,
IFeatureChecker featureChecker,
IPagePublicAppService pagePublicAppService,
IDistributedCache<PageCacheItem> pageCache)
: base(currentTenant, tenantConfigurationProvider)
{
FeatureChecker = featureChecker;
PagePublicAppService = pagePublicAppService;
PageCache = pageCache;
}
public async override ValueTask<RouteValueDictionary> TransformAsync(HttpContext httpContext, RouteValueDictionary values)
protected async override ValueTask<RouteValueDictionary> DoTransformAsync(HttpContext httpContext, RouteValueDictionary values)
{
if (values.TryGetValue("slug", out var slugParameter) && slugParameter is not null)
{

41
modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKitDynamicRouteValueTransformerBase.cs

@ -0,0 +1,41 @@
using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc.Routing;
using Microsoft.AspNetCore.Routing;
using Volo.Abp.DependencyInjection;
using Volo.Abp.MultiTenancy;
namespace Volo.CmsKit.Public.Web.Pages.Public;
public abstract class CmsKitDynamicRouteValueTransformerBase : DynamicRouteValueTransformer, ITransientDependency
{
protected ICurrentTenant CurrentTenant { get; }
protected ITenantConfigurationProvider TenantConfigurationProvider { get; }
protected CmsKitDynamicRouteValueTransformerBase(ICurrentTenant currentTenant, ITenantConfigurationProvider tenantConfigurationProvider)
{
CurrentTenant = currentTenant;
TenantConfigurationProvider = tenantConfigurationProvider;
}
public async override ValueTask<RouteValueDictionary> TransformAsync(HttpContext httpContext, RouteValueDictionary values)
{
TenantConfiguration tenant = null;
try
{
tenant = await TenantConfigurationProvider.GetAsync(saveResolveResult: false);
}
catch (Exception)
{
//Ignore
}
using (CurrentTenant.Change(tenant?.Id, tenant?.Name))
{
return await DoTransformAsync(httpContext, values);
}
}
protected abstract ValueTask<RouteValueDictionary> DoTransformAsync(HttpContext httpContext, RouteValueDictionary values);
}
Loading…
Cancel
Save