Fix B6: Market concurrency lock, watchlist exclusion from cleanup, optimized trade ID deduplication query, and TradeHistoryWorker sync logic

This commit is contained in:
Richard
2026-07-03 11:10:53 +02:00
parent 434c631290
commit 5fe7ab63ac
7 changed files with 45 additions and 20 deletions
@@ -89,10 +89,13 @@ public class TradeRepository : ITradeRepository
.ToListAsync(ct);
}
public async Task<HashSet<string>> GetKnownPlatformTradeIdsAsync(PlatformType platform, int traderId, CancellationToken ct = default)
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>();
var ids = await _db.Trades
.Where(t => t.Platform == platform && t.TraderId == traderId)
.Where(t => t.Platform == platform && t.TraderId == traderId && idList.Contains(t.PlatformTradeId))
.Select(t => t.PlatformTradeId)
.ToListAsync(ct);
return new HashSet<string>(ids);