diff --git a/src/Predictalytics.Infrastructure/Data/Repositories/TradeRepository.cs b/src/Predictalytics.Infrastructure/Data/Repositories/TradeRepository.cs index 0ac62a2..9088ecd 100644 --- a/src/Predictalytics.Infrastructure/Data/Repositories/TradeRepository.cs +++ b/src/Predictalytics.Infrastructure/Data/Repositories/TradeRepository.cs @@ -14,7 +14,7 @@ public class TradeRepository : ITradeRepository => await _db.Trades.FirstOrDefaultAsync(t => t.Platform == platform && t.PlatformTradeId == platformTradeId, ct); public async Task> GetByTraderIdAsync(int traderId, int skip = 0, int take = 50, CancellationToken ct = default) - => await _db.Trades.Include(t => t.Trader).Include(t => t.DbMarket).Where(t => t.TraderId == traderId) + => await _db.Trades.Include(t => t.Trader).Include(t => t.DbMarket).Where(t => t.TraderId == traderId && t.DbMarketId != null) .OrderByDescending(t => t.ExecutedAt).Skip(skip).Take(take).ToListAsync(ct); public async Task> GetByDbMarketIdAsync(int dbMarketId, int skip = 0, int take = 50, CancellationToken ct = default) @@ -22,19 +22,19 @@ public class TradeRepository : ITradeRepository .OrderByDescending(t => t.ExecutedAt).Skip(skip).Take(take).ToListAsync(ct); public async Task> GetByMarketIdAsync(string platformMarketId, int skip = 0, int take = 50, CancellationToken ct = default) - => await _db.Trades.Include(t => t.Trader).Include(t => t.DbMarket).Where(t => t.MarketId == platformMarketId) + => await _db.Trades.Include(t => t.Trader).Include(t => t.DbMarket).Where(t => t.MarketId == platformMarketId && t.DbMarketId != null) .OrderByDescending(t => t.ExecutedAt).Skip(skip).Take(take).ToListAsync(ct); public async Task> GetRecentAsync(int count = 50, PlatformType? platform = null, CancellationToken ct = default) { - var q = _db.Trades.Include(t => t.Trader).Include(t => t.DbMarket).AsQueryable(); + var q = _db.Trades.Include(t => t.Trader).Include(t => t.DbMarket).Where(t => t.DbMarketId != null).AsQueryable(); if (platform.HasValue) q = q.Where(t => t.Platform == platform.Value); return await q.OrderByDescending(t => t.ExecutedAt).Take(count).ToListAsync(ct); } public async Task> GetLargestAsync(int count = 5, DateTime? since = null, CancellationToken ct = default) { - var q = _db.Trades.Include(t => t.Trader).Include(t => t.DbMarket).AsQueryable(); + var q = _db.Trades.Include(t => t.Trader).Include(t => t.DbMarket).Where(t => t.DbMarketId != null).AsQueryable(); if (since.HasValue) q = q.Where(t => t.ExecutedAt >= since.Value); return await q.OrderByDescending(t => t.Amount).Take(count).ToListAsync(ct); }