diff --git a/Content.Server/Database/ServerDbBase.cs b/Content.Server/Database/ServerDbBase.cs index e622bd9268..9b8616a530 100644 --- a/Content.Server/Database/ServerDbBase.cs +++ b/Content.Server/Database/ServerDbBase.cs @@ -742,26 +742,14 @@ namespace Content.Server.Database if (filter.AnyPlayers != null) { - var players = await db.AdminLogPlayer - .Where(player => filter.AnyPlayers.Contains(player.PlayerUserId)) - .ToListAsync(); - - if (players.Count > 0) - { - query = from log in query - join player in db.AdminLogPlayer on log.Id equals player.LogId - where filter.AnyPlayers.Contains(player.Player.UserId) - select log; - } + query = query.Where(log => log.Players.Any(p => filter.AnyPlayers.Contains(p.PlayerUserId))); } if (filter.AllPlayers != null) { - // TODO ADMIN LOGGING + query = query.Where(log => log.Players.All(p => filter.AllPlayers.Contains(p.PlayerUserId))); } - query = query.Distinct(); - if (filter.LastLogId != null) { query = filter.DateOrder switch @@ -781,9 +769,14 @@ namespace Content.Server.Database $"Unknown {nameof(DateOrder)} value {filter.DateOrder}") }; + const int hardLogLimit = 500_000; if (filter.Limit != null) { - query = query.Take(filter.Limit.Value); + query = query.Take(Math.Min(filter.Limit.Value, hardLogLimit)); + } + else + { + query = query.Take(hardLogLimit); } return query;