using Microsoft.AspNetCore.Http;
using TakeoutSaaS.Shared.Abstractions.Tenancy;
namespace TakeoutSaaS.Shared.Web.Security;
///
/// HttpContext 租户扩展方法。
///
public static class TenantHttpContextExtensions
{
///
/// 获取 HttpContext.Items 中缓存的租户上下文。
///
/// 当前 HttpContext
/// 租户上下文,若不存在则返回 null
public static TenantContext? GetTenantContext(this HttpContext? context)
{
if (context == null)
{
return null;
}
if (context.Items.TryGetValue(TenantConstants.HttpContextItemKey, out var value) &&
value is TenantContext tenantContext)
{
return tenantContext;
}
return null;
}
}