Пример #1
0
        /// <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;
        }
Пример #2
0
        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);
                }
            }
        }