Browse Source

Renamed tenancy classes.

pull/81/head
Halil İbrahim Kalkan 10 years ago
parent
commit
27807c855a
  1. 14
      src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/AsyncLocalTenantScopeProvider.cs
  2. 11
      src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/IAmbientTenantScopeProvider.cs
  3. 11
      src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ITenantScopeProvider.cs
  4. 12
      src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/MultiTenancyManager.cs
  5. 4
      src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/SimpleTenantResolver.cs
  6. 7
      src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantScope.cs
  7. 2
      test/Volo.Abp.MultiTenancy.Tests/Volo/Abp/MultiTenancy/AsyncLocalAmbientTenantScopeProvider_Tests.cs
  8. 18
      test/Volo.Abp.MultiTenancy.Tests/Volo/Abp/MultiTenancy/MultiTenantManager_TenantResolver_Tests.cs

14
src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/AsyncLocalAmbientTenantScopeProvider.cs → src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/AsyncLocalTenantScopeProvider.cs

@ -4,25 +4,25 @@ using Volo.DependencyInjection;
namespace Volo.Abp.MultiTenancy namespace Volo.Abp.MultiTenancy
{ {
public class AsyncLocalAmbientTenantScopeProvider : IAmbientTenantScopeProvider, IScopedDependency public class AsyncLocalTenantScopeProvider : ITenantScopeProvider, IScopedDependency
{ {
public AmbientTenantScope CurrentScope public TenantScope CurrentScope
{ {
get { return _tenant.Value; } get { return _tenant.Value; }
set { _tenant.Value = value; } private set { _tenant.Value = value; }
} }
private readonly AsyncLocal<AmbientTenantScope> _tenant; private readonly AsyncLocal<TenantScope> _tenant;
public AsyncLocalAmbientTenantScopeProvider() public AsyncLocalTenantScopeProvider()
{ {
_tenant = new AsyncLocal<AmbientTenantScope>(); _tenant = new AsyncLocal<TenantScope>();
} }
public IDisposable EnterScope(TenantInfo tenantInfo) public IDisposable EnterScope(TenantInfo tenantInfo)
{ {
var parentScope = CurrentScope; var parentScope = CurrentScope;
CurrentScope = new AmbientTenantScope(tenantInfo); CurrentScope = new TenantScope(tenantInfo);
return new DisposeAction(() => return new DisposeAction(() =>
{ {
CurrentScope = parentScope; CurrentScope = parentScope;

11
src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/IAmbientTenantScopeProvider.cs

@ -1,11 +0,0 @@
using System;
namespace Volo.Abp.MultiTenancy
{
public interface IAmbientTenantScopeProvider
{
AmbientTenantScope CurrentScope { get; set; }
IDisposable EnterScope(TenantInfo tenantInfo);
}
}

11
src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ITenantScopeProvider.cs

@ -0,0 +1,11 @@
using System;
namespace Volo.Abp.MultiTenancy
{
public interface ITenantScopeProvider
{
TenantScope CurrentScope { get; }
IDisposable EnterScope(TenantInfo tenantInfo);
}
}

12
src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/MultiTenancyManager.cs

@ -8,22 +8,22 @@ namespace Volo.Abp.MultiTenancy
{ {
public TenantInfo CurrentTenant => GetCurrentTenant(); public TenantInfo CurrentTenant => GetCurrentTenant();
private readonly IAmbientTenantScopeProvider _ambientTenantScopeProvider; private readonly ITenantScopeProvider _tenantScopeProvider;
private readonly IEnumerable<ITenantResolver> _currentTenantResolvers; private readonly IEnumerable<ITenantResolver> _currentTenantResolvers;
public MultiTenancyManager( public MultiTenancyManager(
IAmbientTenantScopeProvider ambientTenantScopeProvider, ITenantScopeProvider tenantScopeProvider,
IEnumerable<ITenantResolver> currentTenantResolvers) IEnumerable<ITenantResolver> currentTenantResolvers)
{ {
_ambientTenantScopeProvider = ambientTenantScopeProvider; _tenantScopeProvider = tenantScopeProvider;
_currentTenantResolvers = currentTenantResolvers; _currentTenantResolvers = currentTenantResolvers;
} }
protected virtual TenantInfo GetCurrentTenant() protected virtual TenantInfo GetCurrentTenant()
{ {
if (_ambientTenantScopeProvider.CurrentScope != null) if (_tenantScopeProvider.CurrentScope != null)
{ {
return _ambientTenantScopeProvider.CurrentScope.Tenant; return _tenantScopeProvider.CurrentScope.Tenant;
} }
var context = new CurrentTenantResolveContext(); var context = new CurrentTenantResolveContext();
@ -42,7 +42,7 @@ namespace Volo.Abp.MultiTenancy
public IDisposable ChangeTenant(TenantInfo tenantInfo) public IDisposable ChangeTenant(TenantInfo tenantInfo)
{ {
return _ambientTenantScopeProvider.EnterScope(tenantInfo); return _tenantScopeProvider.EnterScope(tenantInfo);
} }
} }
} }

4
src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantResolverAction.cs → src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/SimpleTenantResolver.cs

@ -3,11 +3,11 @@ using JetBrains.Annotations;
namespace Volo.Abp.MultiTenancy namespace Volo.Abp.MultiTenancy
{ {
public class TenantResolverAction : ITenantResolver public class SimpleTenantResolver : ITenantResolver
{ {
private readonly Action<ICurrentTenantResolveContext> _resolveAction; private readonly Action<ICurrentTenantResolveContext> _resolveAction;
public TenantResolverAction([NotNull] Action<ICurrentTenantResolveContext> resolveAction) public SimpleTenantResolver([NotNull] Action<ICurrentTenantResolveContext> resolveAction)
{ {
Check.NotNull(resolveAction, nameof(resolveAction)); Check.NotNull(resolveAction, nameof(resolveAction));

7
src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/AmbientTenantScope.cs → src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantScope.cs

@ -2,15 +2,16 @@
namespace Volo.Abp.MultiTenancy namespace Volo.Abp.MultiTenancy
{ {
public class AmbientTenantScope public class TenantScope
{ {
/// <summary> /// <summary>
/// Null indicates the host. /// Null indicates the host.
/// Not null value for a tenant. /// Not null value for a tenant.
/// </summary> /// </summary>
public TenantInfo Tenant { get; set; } [CanBeNull]
public TenantInfo Tenant { get; }
public AmbientTenantScope([CanBeNull] TenantInfo tenant) public TenantScope([CanBeNull] TenantInfo tenant)
{ {
Tenant = tenant; Tenant = tenant;
} }

2
test/Volo.Abp.MultiTenancy.Tests/Volo/Abp/MultiTenancy/AsyncLocalAmbientTenantScopeProvider_Tests.cs

@ -8,7 +8,7 @@ namespace Volo.Abp.MultiTenancy
[Fact] [Fact]
public void Should_Support_Inner_Scopes() public void Should_Support_Inner_Scopes()
{ {
var scopeProvider = new AsyncLocalAmbientTenantScopeProvider(); var scopeProvider = new AsyncLocalTenantScopeProvider();
scopeProvider.CurrentScope.ShouldBeNull(); scopeProvider.CurrentScope.ShouldBeNull();

18
test/Volo.Abp.MultiTenancy.Tests/Volo/Abp/MultiTenancy/MultiTenantManager_TenantResolver_Tests.cs

@ -12,7 +12,7 @@ namespace Volo.Abp.MultiTenancy
{ {
//Arrange //Arrange
var manager = new MultiTenancyManager(Substitute.For<IAmbientTenantScopeProvider>(), new ITenantResolver[0]); var manager = new MultiTenancyManager(Substitute.For<ITenantScopeProvider>(), new ITenantResolver[0]);
//Assert //Assert
@ -26,9 +26,9 @@ namespace Volo.Abp.MultiTenancy
var fakeTenant = new TenantInfo(Guid.NewGuid().ToString(), "acme"); var fakeTenant = new TenantInfo(Guid.NewGuid().ToString(), "acme");
var manager = new MultiTenancyManager(Substitute.For<IAmbientTenantScopeProvider>(), new[] var manager = new MultiTenancyManager(Substitute.For<ITenantScopeProvider>(), new[]
{ {
new TenantResolverAction(context => new SimpleTenantResolver(context =>
{ {
context.Tenant = fakeTenant; context.Tenant = fakeTenant;
context.Handled = true; context.Handled = true;
@ -48,18 +48,18 @@ namespace Volo.Abp.MultiTenancy
var fakeTenant = new TenantInfo(Guid.NewGuid().ToString(), "acme"); var fakeTenant = new TenantInfo(Guid.NewGuid().ToString(), "acme");
var manager = new MultiTenancyManager(Substitute.For<IAmbientTenantScopeProvider>(), new[] var manager = new MultiTenancyManager(Substitute.For<ITenantScopeProvider>(), new[]
{ {
new TenantResolverAction(context => new SimpleTenantResolver(context =>
{ {
context.Tenant = new TenantInfo(Guid.NewGuid().ToString(), "skipped-tenant-1"); context.Tenant = new TenantInfo(Guid.NewGuid().ToString(), "skipped-tenant-1");
}), }),
new TenantResolverAction(context => new SimpleTenantResolver(context =>
{ {
context.Tenant = fakeTenant; context.Tenant = fakeTenant;
context.Handled = true; context.Handled = true;
}), }),
new TenantResolverAction(context => new SimpleTenantResolver(context =>
{ {
context.Tenant = new TenantInfo(Guid.NewGuid().ToString(), "skipped-tenant-2"); context.Tenant = new TenantInfo(Guid.NewGuid().ToString(), "skipped-tenant-2");
context.Handled = true; context.Handled = true;
@ -78,9 +78,9 @@ namespace Volo.Abp.MultiTenancy
var oldTenant = new TenantInfo(Guid.NewGuid().ToString(), "old-tenant"); var oldTenant = new TenantInfo(Guid.NewGuid().ToString(), "old-tenant");
var manager = new MultiTenancyManager(new AsyncLocalAmbientTenantScopeProvider(), new[] var manager = new MultiTenancyManager(new AsyncLocalTenantScopeProvider(), new[]
{ {
new TenantResolverAction(context => new SimpleTenantResolver(context =>
{ {
context.Tenant = oldTenant; context.Tenant = oldTenant;
context.Handled = true; context.Handled = true;

Loading…
Cancel
Save