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

@@ -2,6 +2,7 @@ using System.Reflection;
using HopFrame.Web.Admin.Attributes;
using HopFrame.Web.Admin.Attributes.Classes;
using HopFrame.Web.Admin.Models;
using HopFrame.Web.Admin.Providers;
namespace HopFrame.Web.Admin.Generators.Implementation;
@@ -40,7 +41,7 @@ internal class AdminContextGenerator : IAdminContextGenerator {
foreach (var property in properties) {
var propertyType = property.PropertyType.GenericTypeArguments[0];
var pageGeneratorType = typeof(AdminPageGenerator<>).MakeGenericType(propertyType);
var generatorInstance = Activator.CreateInstance(pageGeneratorType, [propertyType.Name]);
var generatorInstance = Activator.CreateInstance(pageGeneratorType, [property.Name]); // Calls constructor with title attribute
var populatorMethod = typeof(AdminContextGenerator)
.GetMethod(nameof(ApplyConfigurationFromAttributes))?
@@ -88,4 +89,15 @@ internal class AdminContextGenerator : IAdminContextGenerator {
}
}
public static void RegisterPages(AdminPagesContext context, IAdminPagesProvider provider) {
var properties = context.GetType().GetProperties();
foreach (var property in properties) {
var page = property.GetValue(context) as AdminPage;
if (page is null) continue;
provider.RegisterAdminPage(page.Title.ToLower(), page);
}
}
}