mirror of https://github.com/abpframework/abp.git
committed by
GitHub
3 changed files with 62 additions and 10 deletions
@ -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…
Reference in new issue