@
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:
@@ -1,9 +1,10 @@
|
||||
using IBKRTrader.Core.Database.Migrations;
|
||||
using IBKRTrader.Core.Logging;
|
||||
using IBKRTrader.Core.Modules;
|
||||
using IBKRTrader.Core.Settings;
|
||||
using IBKRTrader.Core.Workers;
|
||||
using IBKRTrader.Modules.CongressTrading;
|
||||
using IBKRTrader.UI;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace IBKRTrader;
|
||||
|
||||
@@ -97,14 +98,18 @@ public partial class Form1 : Form
|
||||
_logger.Error("Core", "Core-Datenbankfehler beim Start.", ex);
|
||||
}
|
||||
|
||||
// Modul-Migrationen
|
||||
try
|
||||
// Modul-Migrationen: über die Registry iterieren (Core kennt kein Modul).
|
||||
var registry = _services.GetRequiredService<ModuleRegistry>();
|
||||
foreach (var module in registry.Modules)
|
||||
{
|
||||
await CongressTradingModule.InitializeAsync(_services);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.Error("CT", "CongressTrading-Migrationen fehlgeschlagen.", ex);
|
||||
try
|
||||
{
|
||||
await module.InitializeAsync(_services);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.Error(module.Key, $"{module.DisplayName}: Initialisierung fehlgeschlagen.", ex);
|
||||
}
|
||||
}
|
||||
|
||||
// Worker starten
|
||||
|
||||
Reference in New Issue
Block a user