Created static object provider + added some properties
This commit is contained in:
@@ -1,17 +1,29 @@
|
||||
using HopFrame.Web.Admin.Generators.Implementation;
|
||||
using HopFrame.Web.Admin.Providers;
|
||||
using HopFrame.Web.Admin.Providers.Implementation;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
|
||||
namespace HopFrame.Web.Admin;
|
||||
|
||||
public static class ServiceCollectionExtensions {
|
||||
|
||||
private static IAdminPagesProvider _provider;
|
||||
|
||||
public static IServiceCollection AddAdminContext<TContext>(this IServiceCollection services) where TContext : AdminPagesContext {
|
||||
services.AddSingleton(_ => {
|
||||
var generator = new AdminContextGenerator();
|
||||
return generator.CompileContext<TContext>();
|
||||
});
|
||||
var provider = GetProvider();
|
||||
services.TryAddSingleton(provider);
|
||||
|
||||
var generator = new AdminContextGenerator();
|
||||
var context = generator.CompileContext<TContext>();
|
||||
AdminContextGenerator.RegisterPages(context, provider);
|
||||
services.AddSingleton(context);
|
||||
|
||||
return services;
|
||||
}
|
||||
|
||||
private static IAdminPagesProvider GetProvider() {
|
||||
return _provider ??= new AdminPagesProvider();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user