factor out auth constants, remove TAlias is Alias is not an extensible type, improve SiteOptions cache clearing, improve principal validation, localization improvements
This commit is contained in:
		| @ -6,7 +6,7 @@ using Oqtane.Models; | ||||
|  | ||||
| namespace Microsoft.Extensions.DependencyInjection | ||||
| { | ||||
|     public partial class OqtaneSiteOptionsBuilder<TSiteOptions> where TSiteOptions : class, IAlias, new() | ||||
|     public partial class OqtaneSiteOptionsBuilder | ||||
|     { | ||||
|         public IServiceCollection Services { get; set; } | ||||
|  | ||||
| @ -15,13 +15,12 @@ namespace Microsoft.Extensions.DependencyInjection | ||||
|             Services = services; | ||||
|         } | ||||
|  | ||||
|         public OqtaneSiteOptionsBuilder<TSiteOptions> AddSiteOptions<TOptions>( | ||||
|             Action<TOptions, TSiteOptions> siteOptions) where TOptions : class, new() | ||||
|         public OqtaneSiteOptionsBuilder AddSiteOptions<TOptions>( | ||||
|             Action<TOptions, Alias> alias) where TOptions : class, new() | ||||
|         { | ||||
|             Services.TryAddSingleton<IOptionsMonitorCache<TOptions>, SiteOptionsCache<TOptions, TSiteOptions>>(); | ||||
|             Services.AddSingleton<ISiteOptions<TOptions, TSiteOptions>, SiteOptions<TOptions, TSiteOptions>> | ||||
|                 (sp => new SiteOptions<TOptions, TSiteOptions>(siteOptions)); | ||||
|             Services.TryAddTransient<IOptionsFactory<TOptions>, SiteOptionsFactory<TOptions, TSiteOptions>>(); | ||||
|             Services.TryAddSingleton<IOptionsMonitorCache<TOptions>, SiteOptionsCache<TOptions>>(); | ||||
|             Services.AddSingleton<ISiteOptions<TOptions>, SiteOptions<TOptions>> (sp => new SiteOptions<TOptions>(alias)); | ||||
|             Services.TryAddTransient<IOptionsFactory<TOptions>, SiteOptionsFactory<TOptions>>(); | ||||
|             Services.TryAddScoped<IOptionsSnapshot<TOptions>>(sp => BuildOptionsManager<TOptions>(sp)); | ||||
|             Services.TryAddSingleton<IOptions<TOptions>>(sp => BuildOptionsManager<TOptions>(sp)); | ||||
|  | ||||
| @ -31,7 +30,7 @@ namespace Microsoft.Extensions.DependencyInjection | ||||
|         private static SiteOptionsManager<TOptions> BuildOptionsManager<TOptions>(IServiceProvider sp) | ||||
|             where TOptions : class, new() | ||||
|         { | ||||
|             var cache = ActivatorUtilities.CreateInstance(sp, typeof(SiteOptionsCache<TOptions, TSiteOptions>)); | ||||
|             var cache = ActivatorUtilities.CreateInstance(sp, typeof(SiteOptionsCache<TOptions>)); | ||||
|             return (SiteOptionsManager<TOptions>)ActivatorUtilities.CreateInstance(sp, typeof(SiteOptionsManager<TOptions>), new[] { cache }); | ||||
|         } | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Shaun Walker
					Shaun Walker