/// <summary> /// Constructs a new instance of <see cref="TenantManager{TTenant}"/>. /// </summary> /// <param name="store">The persistence store the manager will operate over.</param> /// <param name="optionsAccessor">The accessor used to access the <see cref="TenancyOptions"/>.</param> /// <param name="tenantValidators">A collection of <see cref="ITenantValidator{TTenant}"/> to validate tenants against.</param> /// <param name="keyNormalizer">The <see cref="ILookupNormalizer"/> to use when generating index keys for tenants.</param> /// <param name="errors">The <see cref="TenancyErrorDescriber"/> used to provider error messages.</param> /// <param name="services">The <see cref="IServiceProvider"/> used to resolve services.</param> /// <param name="logger">The logger used to log messages, warnings and errors.</param> public TenantManager(ITenantStore <TTenant> store, IOptions <TenancyOptions> optionsAccessor, IEnumerable <ITenantValidator <TTenant> > tenantValidators, ILookupNormalizer keyNormalizer, TenancyErrorDescriber errors, IServiceProvider services, ILogger <TenantManager <TTenant> > logger) { ArgCheck.NotNull(nameof(store), store); Store = store; Options = optionsAccessor?.Value ?? new TenancyOptions(); KeyNormalizer = keyNormalizer; ErrorDescriber = errors; Logger = logger; if (tenantValidators != null) { foreach (var v in tenantValidators) { TenantValidators.Add(v); } } _services = services; }
public TenantManager( ITenantStore <TUser, TTenant> store, IOptions <MultiTenantIdentityOptions> optionsAccessor, IEnumerable <ITenantValidator <TUser, TTenant> > tenantValidators, ILookupNormalizer keyNormalizer, ILogger <TenantManager <TUser, TTenant> > logger ) { this.Store = store ?? throw new ArgumentNullException(nameof(store)); this.Options = optionsAccessor?.Value ?? new MultiTenantIdentityOptions(); this.KeyNormalizer = keyNormalizer; this.Logger = logger ?? throw new ArgumentNullException(nameof(logger)); if (tenantValidators != null) { foreach (var v in tenantValidators) { TenantValidators.Add(v); } } }