Created static object provider + added some properties

This commit is contained in:
2024-10-05 12:18:32 +02:00
parent 66ddc22012
commit 9cf818c55d
30 changed files with 186 additions and 77 deletions

View File

@@ -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();
}
}