asynchroner tenant

This commit is contained in:
MarcWieland
2026-06-25 21:04:04 +02:00
parent a01f80bb14
commit b6dc66744f
+11 -11
View File
@@ -37,7 +37,7 @@ public class TenantProvider : ITenantProvider
}
// Resolve and cache in HttpContext.Items
ResolveTenantAsync().GetAwaiter().GetResult();
ResolveTenant();
if (httpContext.Items.TryGetValue("TenantId", out cachedId))
{
@@ -48,27 +48,27 @@ public class TenantProvider : ITenantProvider
}
}
public async Task<Tenant?> GetCurrentTenantAsync()
public Task<Tenant?> GetCurrentTenantAsync()
{
var httpContext = _httpContextAccessor.HttpContext;
if (httpContext == null) return null;
if (httpContext == null) return Task.FromResult<Tenant?>(null);
if (httpContext.Items.TryGetValue("CurrentTenant", out var cachedTenant))
{
return (Tenant?)cachedTenant;
return Task.FromResult((Tenant?)cachedTenant);
}
await ResolveTenantAsync();
ResolveTenant();
if (httpContext.Items.TryGetValue("CurrentTenant", out cachedTenant))
{
return (Tenant?)cachedTenant;
return Task.FromResult((Tenant?)cachedTenant);
}
return null;
return Task.FromResult<Tenant?>(null);
}
private async Task ResolveTenantAsync()
private void ResolveTenant()
{
var httpContext = _httpContextAccessor.HttpContext;
if (httpContext == null) return;
@@ -82,9 +82,9 @@ public class TenantProvider : ITenantProvider
if (!string.IsNullOrEmpty(subdomain))
{
await using var db = await _dbContextFactory.CreateDbContextAsync();
var tenant = await db.Tenants
.FirstOrDefaultAsync(t => t.Subdomain.ToLower() == subdomain.ToLower());
using var db = _dbContextFactory.CreateDbContext();
var tenant = db.Tenants
.FirstOrDefault(t => t.Subdomain.ToLower() == subdomain.ToLower());
if (tenant != null)
{