Files
IBKRTrader/Modules/CongressTrading/CongressTradingModule.cs
T
RichardandClaude Opus 4.8 ebeb035e92 Initial commit: IBKRTrader
.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>
2026-07-26 18:19:47 +02:00

56 lines
2.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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>()
];
}