From b595965bf9253fbe79425fa6992a038936c54617 Mon Sep 17 00:00:00 2001 From: Suhaib Mousa Date: Tue, 24 Jun 2025 00:40:44 +0300 Subject: [PATCH] Adds a new tenant resolve contributor --- .../ConfigurationTenantResolveContributor.cs | 27 +++++++++++++++++++ ...igurationTenantResolveOptionsExtensions.cs | 17 ++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ConfigurationTenantResolveContributor.cs create mode 100644 framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ConfigurationTenantResolveOptionsExtensions.cs diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ConfigurationTenantResolveContributor.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ConfigurationTenantResolveContributor.cs new file mode 100644 index 0000000000..416fc53d1d --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ConfigurationTenantResolveContributor.cs @@ -0,0 +1,27 @@ +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using System; +using System.Threading.Tasks; +using Volo.Abp; + +namespace Volo.Abp.MultiTenancy; + +public class ConfigurationTenantResolveContributor : TenantResolveContributorBase +{ + public const string ContributorName = "Configuration"; + public override string Name => ContributorName; + + public override async Task ResolveAsync(ITenantResolveContext context) + { + var configuration = context.ServiceProvider.GetRequiredService(); + var tenantIdOrName = configuration["MultiTenancy:Tenant"]; + + if (!tenantIdOrName.IsNullOrEmpty()) + { + context.TenantIdOrName = tenantIdOrName; + } + + await Task.CompletedTask; + } +} diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ConfigurationTenantResolveOptionsExtensions.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ConfigurationTenantResolveOptionsExtensions.cs new file mode 100644 index 0000000000..695e16abb7 --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ConfigurationTenantResolveOptionsExtensions.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Volo.Abp.MultiTenancy; + +public static class ConfigurationTenantResolveOptionsExtensions +{ + public static void AddConfigurationTenantResolver( + this AbpTenantResolveOptions options) + { + options.TenantResolvers.InsertAfter( + r => r is CurrentUserTenantResolveContributor, + new ConfigurationTenantResolveContributor() + ); + } +}