@
Phase 1: Modul-System formalisiert (IModule + ModuleRegistry) - Core/Modules/IModule.cs: Vertrag (Key, DisplayName, Description, Version, RegisterServices, InitializeAsync, GetWorkers, CreateWindow) - Core/Modules/ModuleRegistry.cs - CongressTradingModule auf IModule umgestellt (instanzbasiert, Platzhalter-Fenster) - Program.cs iteriert ueber IModule[] + Registry; Form1 initialisiert Module ueber Registry - Testbarkeit: WorkerBase DB-Log-Seam (virtuell); CapitolTradesScraper.ParseTradesFromHtml extrahiert (offline gegen ct_raw.html testbar) - Tests: ModuleRegistry, CongressTradingModule, WorkerBase, CapitolTradesScraper -> 15/15 gruen Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> @
This commit is contained in:
+15
-2
@@ -4,6 +4,7 @@ using IBKRTrader.Core.Database;
|
||||
using IBKRTrader.Core.Database.Migrations;
|
||||
using IBKRTrader.Core.IBKR;
|
||||
using IBKRTrader.Core.Logging;
|
||||
using IBKRTrader.Core.Modules;
|
||||
using IBKRTrader.Core.Settings;
|
||||
using IBKRTrader.Core.Trading;
|
||||
using IBKRTrader.Core.Workers;
|
||||
@@ -53,7 +54,19 @@ internal static class Program
|
||||
services.AddSingleton<IBKRPriceHistoryWorker>();
|
||||
|
||||
// ── Module registrieren ──────────────────────────────────────────────
|
||||
CongressTradingModule.Register(services);
|
||||
// Der Core kennt konkrete Module nicht: Module werden hier instanziiert,
|
||||
// hängen ihre Services über IModule.RegisterServices ein und werden über
|
||||
// die ModuleRegistry zugänglich gemacht.
|
||||
IModule[] modules =
|
||||
[
|
||||
new CongressTradingModule(),
|
||||
];
|
||||
|
||||
foreach (var module in modules)
|
||||
module.RegisterServices(services);
|
||||
|
||||
var moduleRegistry = new ModuleRegistry(modules);
|
||||
services.AddSingleton(moduleRegistry);
|
||||
|
||||
// ── IWorker-Sammlung: Core + Module ──────────────────────────────────
|
||||
services.AddSingleton<IEnumerable<IWorker>>(sp => new IWorker[]
|
||||
@@ -67,7 +80,7 @@ internal static class Program
|
||||
sp.GetRequiredService<IBKRPriceHistoryWorker>(),
|
||||
}
|
||||
// Modul-Worker dynamisch anhängen
|
||||
.Concat(CongressTradingModule.GetWorkers(sp))
|
||||
.Concat(moduleRegistry.Modules.SelectMany(m => m.GetWorkers(sp)))
|
||||
.ToArray());
|
||||
|
||||
services.AddSingleton<WorkerEngine>();
|
||||
|
||||
Reference in New Issue
Block a user