RF-Slice 4: ResolutionFarming-UI (Tabs Kandidaten/Positionen/Historie/Settings)

Ein Modul-Fenster mit TabControl, code-only konstruiert (kein Designer/.resx):
- Kandidaten: DataGridView der letzten Scans je Konto (akzeptiert+abgelehnt inkl. Grund).
- Positionen: offene rf_positions.
- Historie/Statistik: abgeschlossene Trades + Summary (Winrate gesamt/je 5-¢-Preisband,
  Netto-PnL, Fees) fuer die Kalibrierung.
- Settings: PropertyGrid auf RfSettings je Konto + Speichern (Muster AccountSettingsView).
RegisterUi verdrahtet die View (Launcher-Button 'ResolutionFarming').

DB-Zugriffe defensiv (Guarded try/catch) -> UI bleibt bedienbar auch vor Anwenden der
rf_-Migration (zeigt dann nur Statushinweis statt zu crashen).

Build 0 Fehler, 296 Tests gruen, --smoke-ui konstruiert die RF-View ([OK] resolutionfarming.main).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-07-09 22:59:41 +02:00
co-authored by Claude Opus 4.8
parent ad6c676e60
commit 80e6ad9b2d
2 changed files with 233 additions and 1 deletions
@@ -47,7 +47,20 @@ namespace PolyTrader.Modules.ResolutionFarming
public void RegisterUi(IModuleUiHost host, System.IServiceProvider services)
{
// Slice 1: noch keine UI-Tabs. Folgen mit Persistenz/Scanner.
// EIN Fenster fürs ganze Modul (Tabs: Kandidaten/Positionen/Historie/Settings).
host.RegisterView(new ModuleView
{
Id = "resolutionfarming.main",
Title = "ResolutionFarming",
Group = "ResolutionFarming",
Order = 200,
CreateForm = () =>
{
var form = new Ui.ResolutionFarmingMainForm();
form.Initialize(services);
return form;
}
});
}
public Task StartAsync(CancellationToken cancellationToken) => Task.CompletedTask;