| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- using System;
- using Abp.Configuration.Startup;
- using Abp.MultiTenancy;
- namespace Abp.Runtime.Session
- {
- public abstract class AbpSessionBase : IAbpSession
- {
- public const string SessionOverrideContextKey = "Abp.Runtime.Session.Override";
- public IMultiTenancyConfig MultiTenancy { get; }
- public abstract long? UserId { get; }
- public abstract int? TenantId { get; }
- public abstract long? ImpersonatorUserId { get; }
- public abstract int? ImpersonatorTenantId { get; }
- public virtual MultiTenancySides MultiTenancySide
- {
- get
- {
- return MultiTenancy.IsEnabled && !TenantId.HasValue
- ? MultiTenancySides.Host
- : MultiTenancySides.Tenant;
- }
- }
- protected SessionOverride OverridedValue => SessionOverrideScopeProvider.GetValue(SessionOverrideContextKey);
- protected IAmbientScopeProvider<SessionOverride> SessionOverrideScopeProvider { get; }
- protected AbpSessionBase(IMultiTenancyConfig multiTenancy, IAmbientScopeProvider<SessionOverride> sessionOverrideScopeProvider)
- {
- MultiTenancy = multiTenancy;
- SessionOverrideScopeProvider = sessionOverrideScopeProvider;
- }
- public IDisposable Use(int? tenantId, long? userId)
- {
- return SessionOverrideScopeProvider.BeginScope(SessionOverrideContextKey, new SessionOverride(tenantId, userId));
- }
- }
- }
|