Enhance UI, add AI integration, improve logging and database stats

This commit is contained in:
Richard
2026-07-04 21:11:31 +02:00
parent 7a44914d9d
commit d102af2965
57 changed files with 4025 additions and 229 deletions
@@ -92,13 +92,13 @@ public class TradeRepository : ITradeRepository
public async Task<HashSet<string>> GetKnownPlatformTradeIdsAsync(PlatformType platform, int traderId, IEnumerable<string> platformTradeIds, CancellationToken ct = default)
{
var idList = platformTradeIds.ToList();
if (idList.Count == 0) return new HashSet<string>();
if (idList.Count == 0) return new HashSet<string>(StringComparer.OrdinalIgnoreCase);
var ids = await _db.Trades
.Where(t => t.Platform == platform && t.TraderId == traderId && idList.Contains(t.PlatformTradeId))
.Where(t => t.Platform == platform && idList.Contains(t.PlatformTradeId))
.Select(t => t.PlatformTradeId)
.ToListAsync(ct);
return new HashSet<string>(ids);
return new HashSet<string>(ids, StringComparer.OrdinalIgnoreCase);
}
public async Task UpdateAsync(Trade trade, CancellationToken ct = default)
@@ -111,4 +111,19 @@ public class TradeRepository : ITradeRepository
_db.Trades.Update(trade);
await _db.SaveChangesAsync(ct);
}
public async Task<IReadOnlyList<Trade>> GetTradesForContextEnrichmentAsync(int limit, CancellationToken ct = default)
{
return await _db.Trades
.Include(t => t.Trader)
.Include(t => t.Trader.CurrentScore)
.Include(t => t.Trader.WatchlistEntries)
.Where(t => !t.IsContextEnriched
&& t.Platform == PlatformType.Polymarket
&& t.AssetId != "")
.Where(t => t.Trader.WatchlistEntries.Any() || (t.Trader.CurrentScore != null && t.Trader.CurrentScore.CopytradingScore > 50))
.OrderByDescending(t => t.ExecutedAt)
.Take(limit)
.ToListAsync(ct);
}
}