Phase 5-UI: Generischer Core-Trade-Log + modulübergreifendes Dashboard

- Core: TradeRecord (Modell) + ITradeLogRepository (+ Mongo-Impl, Collection
  "trade_log"), in AddCorePersistence registriert. Realisiert den generischen,
  modulneutralen Trade-Log aus Entscheidung #2.
- Dual-Write: PersistenceService schreibt geschlossene Copy-Trades zusaetzlich als
  generischen TradeRecord (ModuleName="CopyTrading").
- Neue DashboardView (UserControl + Designer): zeigt die letzten Trades ALLER
  Module (GetRecent) mit Konto-Aufloesung + Kurzauswertung (Gesamt-PnL, Anzahl,
  Aufschluesselung je Modul). btn_dashboard im Launcher, View "core.dashboard".
- Build 0 Fehler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-07-02 12:16:20 +02:00
co-authored by Claude Opus 4.8
parent 8e2a92ad2e
commit 4f6c7fdb86
13 changed files with 500 additions and 41 deletions
+17
View File
@@ -176,6 +176,23 @@ internal static class Program
return view;
}
});
uiHost.RegisterView(new PolyTrader.Core.Modularity.ModuleView
{
Id = "core.dashboard",
Title = "Dashboard",
Group = "Core",
Order = 5,
PreferredWidth = 1200,
PreferredHeight = 650,
CreateControl = () =>
{
var view = new PolyTraderSharp.Ui.Views.DashboardView();
view.Initialize(
viewServices.GetRequiredService<PolyTrader.Core.Persistence.ITradeLogRepository>(),
viewServices.GetRequiredService<TradingState>());
return view;
}
});
// TODO Phase 5-UI: registrierte IPolyTraderModule durchlaufen und module.RegisterUi(uiHost) aufrufen.
var launcher = AppHost.Services.GetRequiredService<PolyTraderSharp.Ui.LauncherForm>();