コード例 #1
0
 /// <summary>
 /// Initializes a new instance with the specified options configurations.
 /// </summary>
 /// <param name="configureOptions">The configuration actions to run.</param>
 /// <param name="postConfigures">The initialization actions to run.</param>
 public MultiTenantOptionsFactory(IEnumerable <IConfigureOptions <TOptions> > configureOptions, IEnumerable <IPostConfigureOptions <TOptions> > postConfigureOptions, IEnumerable <ITenantConfigureOptions <TOptions, TTenantInfo> > tenantConfigureOptions, IMultiTenantContextAccessor <TTenantInfo> multiTenantContextAccessor)
 {
     this.configureOptions           = configureOptions;
     this.tenantConfigureOptions     = tenantConfigureOptions;
     this.multiTenantContextAccessor = multiTenantContextAccessor;
     this.postConfigureOptions       = postConfigureOptions;
 }
コード例 #2
0
 /// <summary>
 /// Initializes a new instance with the specified options configurations.
 /// </summary>
 /// <param name="setups">The configuration actions to run.</param>
 /// <param name="postConfigures">The initialization actions to run.</param>
 public MultiTenantOptionsFactory(IEnumerable <IConfigureOptions <TOptions> > setups, IEnumerable <IPostConfigureOptions <TOptions> > postConfigures, Action <TOptions, TenantInfo> tenantConfig, IMultiTenantContextAccessor multiTenantContextAccessor)
 {
     _setups           = setups;
     this.tenantConfig = tenantConfig;
     this.multiTenantContextAccessor = multiTenantContextAccessor;
     _postConfigures = postConfigures;
 }
コード例 #3
0
        /// <summary>
        /// Initializes a new instance with the specified options configurations.
        /// </summary>
        public MultiTenantOptionsFactory(IEnumerable <IConfigureOptions <TOptions> > configureOptions, IEnumerable <IPostConfigureOptions <TOptions> > postConfigureOptions, IEnumerable <IValidateOptions <TOptions> > validations, IEnumerable <ITenantConfigureOptions <TOptions, TTenantInfo> > tenantConfigureOptions, IEnumerable <ITenantConfigureNamedOptions <TOptions, TTenantInfo> > tenantConfigureNamedOptions, IMultiTenantContextAccessor <TTenantInfo> multiTenantContextAccessor)
        {
            // The default DI container uses arrays under the covers. Take advantage of this knowledge
            // by checking for an array and enumerate over that, so we don't need to allocate an enumerator.
            // When it isn't already an array, convert it to one, but don't use System.Linq to avoid pulling Linq in to
            // small trimmed applications.

            _configureOptions            = configureOptions as IConfigureOptions <TOptions>[] ?? new List <IConfigureOptions <TOptions> >(configureOptions).ToArray();
            _postConfigureOptions        = postConfigureOptions as IPostConfigureOptions <TOptions>[] ?? new List <IPostConfigureOptions <TOptions> >(postConfigureOptions).ToArray();
            _validations                 = validations as IValidateOptions <TOptions>[] ?? new List <IValidateOptions <TOptions> >(validations).ToArray();
            _tenantConfigureOptions      = tenantConfigureOptions as ITenantConfigureOptions <TOptions, TTenantInfo>[] ?? new List <ITenantConfigureOptions <TOptions, TTenantInfo> >(tenantConfigureOptions).ToArray();
            _tenantConfigureNamedOptions = tenantConfigureNamedOptions as ITenantConfigureNamedOptions <TOptions, TTenantInfo>[] ?? new List <ITenantConfigureNamedOptions <TOptions, TTenantInfo> >(tenantConfigureNamedOptions).ToArray();
            _multiTenantContextAccessor  = multiTenantContextAccessor;
        }
コード例 #4
0
 public MultiTenantOptionsCache(IMultiTenantContextAccessor multiTenantContextAccessor)
 {
     this.multiTenantContextAccessor = multiTenantContextAccessor ?? throw new ArgumentNullException(nameof(multiTenantContextAccessor));
 }