.NET WinForms-Anwendung (Core, Modules/CongressTrading, UI). Enthaelt .gitignore und settings.example.json als Konfigurationsvorlage. Echte settings.json mit Zugangsdaten ist bewusst ausgeschlossen. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
56 lines
2.0 KiB
C#
56 lines
2.0 KiB
C#
using IBKRTrader.Core.Workers;
|
||
using IBKRTrader.Modules.CongressTrading.Database;
|
||
using IBKRTrader.Modules.CongressTrading.Scraper;
|
||
using IBKRTrader.Modules.CongressTrading.Workers;
|
||
using Microsoft.Extensions.DependencyInjection;
|
||
|
||
namespace IBKRTrader.Modules.CongressTrading;
|
||
|
||
/// <summary>
|
||
/// Entry-Point des CongressTrading-Moduls.
|
||
/// Registriert alle modulspezifischen Services in den DI-Container.
|
||
///
|
||
/// Architektur-Regel: Dieser Code wird von Program.cs aufgerufen.
|
||
/// Der Core kennt dieses Modul NICHT – die Abhängigkeit geht nur von Modul → Core.
|
||
/// </summary>
|
||
public static class CongressTradingModule
|
||
{
|
||
public const string ModuleKey = "CT";
|
||
|
||
/// <summary>Registriert alle Modul-Services im DI-Container.</summary>
|
||
public static void Register(IServiceCollection services)
|
||
{
|
||
// Datenbank
|
||
services.AddSingleton<CongressMigrations>();
|
||
services.AddSingleton<CongressRepository>();
|
||
|
||
// Scraper
|
||
services.AddSingleton<CapitolTradesScraper>();
|
||
|
||
// Worker
|
||
services.AddSingleton<CongressHistoryImportWorker>();
|
||
services.AddSingleton<CongressScrapeWorker>();
|
||
}
|
||
|
||
/// <summary>
|
||
/// Führt die Modul-Migrationen aus und resettet ggf. den Fortschritt.
|
||
/// </summary>
|
||
public static async Task InitializeAsync(IServiceProvider provider)
|
||
{
|
||
var migrations = provider.GetRequiredService<CongressMigrations>();
|
||
await migrations.RunAsync();
|
||
|
||
// Einmaliger Reset: löscht alle alten (fehlerhaften) Fortschritts-Daten
|
||
// damit der Import sauber von Seite 1 neu startet.
|
||
var repo = provider.GetRequiredService<CongressRepository>();
|
||
// await repo.ResetHistoryImportAsync();
|
||
}
|
||
|
||
/// <summary>Gibt die Modul-Worker für die WorkerEngine zurück.</summary>
|
||
public static IEnumerable<IWorker> GetWorkers(IServiceProvider provider) =>
|
||
[
|
||
provider.GetRequiredService<CongressHistoryImportWorker>(),
|
||
provider.GetRequiredService<CongressScrapeWorker>()
|
||
];
|
||
}
|