diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ListController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ListController.cs index ec63ca5c..559e2a60 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ListController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ListController.cs @@ -319,39 +319,42 @@ public class ListController : ControllerBase FavouriteSlots, } - private GameVersion getGameFilter(string? gameFilterType, GameVersion version) + private static GameVersion getGameFilter(string? gameFilterType, GameVersion version) { - if (version == GameVersion.LittleBigPlanetVita) return GameVersion.LittleBigPlanetVita; - if (version == GameVersion.LittleBigPlanetPSP) return GameVersion.LittleBigPlanetPSP; - - return gameFilterType switch + return version switch { - "lbp1" => GameVersion.LittleBigPlanet1, - "lbp2" => GameVersion.LittleBigPlanet2, - "lbp3" => GameVersion.LittleBigPlanet3, - "both" => GameVersion.LittleBigPlanet2, // LBP2 default option - null => GameVersion.LittleBigPlanet1, - _ => GameVersion.Unknown, + GameVersion.LittleBigPlanetVita => GameVersion.LittleBigPlanetVita, + GameVersion.LittleBigPlanetPSP => GameVersion.LittleBigPlanetPSP, + _ => gameFilterType switch + { + "lbp1" => GameVersion.LittleBigPlanet1, + "lbp2" => GameVersion.LittleBigPlanet2, + "lbp3" => GameVersion.LittleBigPlanet3, + "both" => GameVersion.LittleBigPlanet2, // LBP2 default option + null => GameVersion.LittleBigPlanet1, + _ => GameVersion.Unknown, + } }; } private IQueryable filterListByRequest(string? gameFilterType, string? dateFilterType, GameVersion version, string username, ListFilterType filterType) { - if (version == GameVersion.LittleBigPlanetVita || version == GameVersion.LittleBigPlanetPSP || version == GameVersion.Unknown) + if (version is GameVersion.LittleBigPlanetPSP or GameVersion.Unknown) { return this.database.Slots.ByGameVersion(version, false, true); } - string _dateFilterType = dateFilterType ?? ""; - - long oldestTime = _dateFilterType switch + long oldestTime = dateFilterType switch { "thisWeek" => DateTimeOffset.Now.AddDays(-7).ToUnixTimeMilliseconds(), "thisMonth" => DateTimeOffset.Now.AddDays(-31).ToUnixTimeMilliseconds(), _ => 0, }; - GameVersion gameVersion = this.getGameFilter(gameFilterType, version); + GameVersion gameVersion = getGameFilter(gameFilterType, version); + + // The filtering only cares if this isn't equal to 'both' + if (version == GameVersion.LittleBigPlanetVita) gameFilterType = "lbp2"; if (filterType == ListFilterType.Queue) { @@ -369,23 +372,22 @@ public class ListController : ControllerBase .Where(q => q.Slot.Type == SlotType.User && !q.Slot.Hidden && q.Slot.GameVersion == gameVersion && q.Slot.FirstUploaded >= oldestTime); return whereQueuedLevels.OrderByDescending(q => q.QueuedLevelId).Include(q => q.Slot.Creator).Select(q => q.Slot).ByGameVersion(gameVersion, false, false, true); - } else - { - IQueryable whereHeartedLevels; + } - // ReSharper disable once ConvertIfStatementToConditionalTernaryExpression - if (gameFilterType == "both") - // Get game versions less than the current version - // Needs support for LBP3 ("both" = LBP1+2) - whereHeartedLevels = this.database.HeartedLevels.Where(h => h.User.Username == username) + IQueryable whereHeartedLevels; + + // ReSharper disable once ConvertIfStatementToConditionalTernaryExpression + if (gameFilterType == "both") + // Get game versions less than the current version + // Needs support for LBP3 ("both" = LBP1+2) + whereHeartedLevels = this.database.HeartedLevels.Where(h => h.User.Username == username) .Where(h => (h.Slot.Type == SlotType.User || h.Slot.Type == SlotType.Developer) && !h.Slot.Hidden && h.Slot.GameVersion <= gameVersion && h.Slot.FirstUploaded >= oldestTime); - else - // Get game versions exactly equal to gamefiltertype - whereHeartedLevels = this.database.HeartedLevels.Where(h => h.User.Username == username) + else + // Get game versions exactly equal to gamefiltertype + whereHeartedLevels = this.database.HeartedLevels.Where(h => h.User.Username == username) .Where(h => (h.Slot.Type == SlotType.User || h.Slot.Type == SlotType.Developer) && !h.Slot.Hidden && h.Slot.GameVersion == gameVersion && h.Slot.FirstUploaded >= oldestTime); - return whereHeartedLevels.OrderByDescending(h => h.HeartedLevelId).Include(h => h.Slot.Creator).Select(h => h.Slot).ByGameVersion(gameVersion, false, false, true); - } + return whereHeartedLevels.OrderByDescending(h => h.HeartedLevelId).Include(h => h.Slot.Creator).Select(h => h.Slot).ByGameVersion(gameVersion, false, false, true); } #endregion Filtering }