asynchroner tenant #14

Merged
mrcwlnd merged 1 commits from testbranch into main 2026-06-25 19:04:19 +00:00
Showing only changes of commit b6dc66744f - Show all commits
+11 -11
View File
@@ -37,7 +37,7 @@ public class TenantProvider : ITenantProvider
} }
// Resolve and cache in HttpContext.Items // Resolve and cache in HttpContext.Items
ResolveTenantAsync().GetAwaiter().GetResult(); ResolveTenant();
if (httpContext.Items.TryGetValue("TenantId", out cachedId)) 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; 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)) 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)) 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; var httpContext = _httpContextAccessor.HttpContext;
if (httpContext == null) return; if (httpContext == null) return;
@@ -82,9 +82,9 @@ public class TenantProvider : ITenantProvider
if (!string.IsNullOrEmpty(subdomain)) if (!string.IsNullOrEmpty(subdomain))
{ {
await using var db = await _dbContextFactory.CreateDbContextAsync(); using var db = _dbContextFactory.CreateDbContext();
var tenant = await db.Tenants var tenant = db.Tenants
.FirstOrDefaultAsync(t => t.Subdomain.ToLower() == subdomain.ToLower()); .FirstOrDefault(t => t.Subdomain.ToLower() == subdomain.ToLower());
if (tenant != null) if (tenant != null)
{ {