diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ListController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ListController.cs index e888f4ad..7362aa2d 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ListController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ListController.cs @@ -1,4 +1,5 @@ #nullable enable +using LBPUnion.ProjectLighthouse.Extensions; using LBPUnion.ProjectLighthouse.Levels; using LBPUnion.ProjectLighthouse.PlayerData; using LBPUnion.ProjectLighthouse.PlayerData.Profiles; @@ -25,24 +26,21 @@ public class ListController : ControllerBase #region Level Queue (lolcatftw) [HttpGet("slots/lolcatftw/{username}")] - public async Task GetLevelQueue(string username, [FromQuery] int pageSize, [FromQuery] int pageStart) + public async Task GetQueuedLevels(string username, [FromQuery] int pageSize, [FromQuery] int pageStart) { GameToken? token = await this.database.GameTokenFromRequest(this.Request); if (token == null) return this.StatusCode(403, ""); GameVersion gameVersion = token.GameVersion; - IEnumerable queuedLevels = this.database.QueuedLevels.Include(q => q.User) - .Include(q => q.Slot) - .Include(q => q.Slot.Location) - .Include(q => q.Slot.Creator) - .Where(q => q.Slot.GameVersion <= gameVersion) - .Where(q => q.User.Username == username) + IEnumerable queuedLevels = this.database.QueuedLevels.Where(q => q.User.Username == username) + .Select(q => q.Slot) + .ByGameVersion(gameVersion, false, true) .Skip(pageStart - 1) .Take(Math.Min(pageSize, 30)) .AsEnumerable(); - string response = queuedLevels.Aggregate(string.Empty, (current, q) => current + q.Slot.Serialize(gameVersion)); + string response = queuedLevels.Aggregate(string.Empty, (current, q) => current + q.Serialize(gameVersion)); return this.Ok ( @@ -104,17 +102,14 @@ public class ListController : ControllerBase GameVersion gameVersion = token.GameVersion; - IEnumerable heartedLevels = this.database.HeartedLevels.Include(q => q.User) - .Include(q => q.Slot) - .Include(q => q.Slot.Location) - .Include(q => q.Slot.Creator) - .Where(q => q.Slot.GameVersion <= gameVersion) - .Where(q => q.User.Username == username) + IEnumerable heartedLevels = this.database.HeartedLevels.Where(q => q.User.Username == username) + .Select(q => q.Slot) + .ByGameVersion(gameVersion, false, true) .Skip(pageStart - 1) .Take(Math.Min(pageSize, 30)) .AsEnumerable(); - string response = heartedLevels.Aggregate(string.Empty, (current, q) => current + q.Slot.Serialize(gameVersion)); + string response = heartedLevels.Aggregate(string.Empty, (current, q) => current + q.Serialize(gameVersion)); return this.Ok ( diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SearchController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SearchController.cs index 8e6e43bf..08c68e34 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SearchController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SearchController.cs @@ -31,8 +31,7 @@ public class SearchController : ControllerBase string[] keywords = query.Split(" "); - IQueryable dbQuery = this.database.Slots.Include - (s => s.Creator) + IQueryable dbQuery = this.database.Slots.Include(s => s.Creator) .Include(s => s.Location) .OrderBy(s => !s.TeamPick) .ThenByDescending(s => s.FirstUploaded)