Fix hearted and queued levels on LBP Vita

This commit is contained in:
Slendy 2023-03-04 21:41:49 -06:00
parent e3dcbe75e1
commit 9d25f56e64
No known key found for this signature in database
GPG key ID: 7288D68361B91428

View file

@ -319,12 +319,13 @@ public class ListController : ControllerBase
FavouriteSlots, FavouriteSlots,
} }
private GameVersion getGameFilter(string? gameFilterType, GameVersion version) private static GameVersion getGameFilter(string? gameFilterType, GameVersion version)
{ {
if (version == GameVersion.LittleBigPlanetVita) return GameVersion.LittleBigPlanetVita; return version switch
if (version == GameVersion.LittleBigPlanetPSP) return GameVersion.LittleBigPlanetPSP; {
GameVersion.LittleBigPlanetVita => GameVersion.LittleBigPlanetVita,
return gameFilterType switch GameVersion.LittleBigPlanetPSP => GameVersion.LittleBigPlanetPSP,
_ => gameFilterType switch
{ {
"lbp1" => GameVersion.LittleBigPlanet1, "lbp1" => GameVersion.LittleBigPlanet1,
"lbp2" => GameVersion.LittleBigPlanet2, "lbp2" => GameVersion.LittleBigPlanet2,
@ -332,26 +333,28 @@ public class ListController : ControllerBase
"both" => GameVersion.LittleBigPlanet2, // LBP2 default option "both" => GameVersion.LittleBigPlanet2, // LBP2 default option
null => GameVersion.LittleBigPlanet1, null => GameVersion.LittleBigPlanet1,
_ => GameVersion.Unknown, _ => GameVersion.Unknown,
}
}; };
} }
private IQueryable<Slot> filterListByRequest(string? gameFilterType, string? dateFilterType, GameVersion version, string username, ListFilterType filterType) private IQueryable<Slot> 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); 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(), "thisWeek" => DateTimeOffset.Now.AddDays(-7).ToUnixTimeMilliseconds(),
"thisMonth" => DateTimeOffset.Now.AddDays(-31).ToUnixTimeMilliseconds(), "thisMonth" => DateTimeOffset.Now.AddDays(-31).ToUnixTimeMilliseconds(),
_ => 0, _ => 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) if (filterType == ListFilterType.Queue)
{ {
@ -369,8 +372,8 @@ public class ListController : ControllerBase
.Where(q => q.Slot.Type == SlotType.User && !q.Slot.Hidden && q.Slot.GameVersion == gameVersion && q.Slot.FirstUploaded >= oldestTime); .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); return whereQueuedLevels.OrderByDescending(q => q.QueuedLevelId).Include(q => q.Slot.Creator).Select(q => q.Slot).ByGameVersion(gameVersion, false, false, true);
} else }
{
IQueryable<HeartedLevel> whereHeartedLevels; IQueryable<HeartedLevel> whereHeartedLevels;
// ReSharper disable once ConvertIfStatementToConditionalTernaryExpression // ReSharper disable once ConvertIfStatementToConditionalTernaryExpression
@ -386,6 +389,5 @@ public class ListController : ControllerBase
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 #endregion Filtering
} }