mirror of
https://github.com/LBPUnion/ProjectLighthouse.git
synced 2025-06-02 06:02:28 +00:00
Fix hearted and queued levels on LBP Vita
This commit is contained in:
parent
e3dcbe75e1
commit
9d25f56e64
1 changed files with 31 additions and 29 deletions
|
@ -319,39 +319,42 @@ 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;
|
|
||||||
|
|
||||||
return gameFilterType switch
|
|
||||||
{
|
{
|
||||||
"lbp1" => GameVersion.LittleBigPlanet1,
|
GameVersion.LittleBigPlanetVita => GameVersion.LittleBigPlanetVita,
|
||||||
"lbp2" => GameVersion.LittleBigPlanet2,
|
GameVersion.LittleBigPlanetPSP => GameVersion.LittleBigPlanetPSP,
|
||||||
"lbp3" => GameVersion.LittleBigPlanet3,
|
_ => gameFilterType switch
|
||||||
"both" => GameVersion.LittleBigPlanet2, // LBP2 default option
|
{
|
||||||
null => GameVersion.LittleBigPlanet1,
|
"lbp1" => GameVersion.LittleBigPlanet1,
|
||||||
_ => GameVersion.Unknown,
|
"lbp2" => GameVersion.LittleBigPlanet2,
|
||||||
|
"lbp3" => GameVersion.LittleBigPlanet3,
|
||||||
|
"both" => GameVersion.LittleBigPlanet2, // LBP2 default option
|
||||||
|
null => GameVersion.LittleBigPlanet1,
|
||||||
|
_ => 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,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);
|
.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;
|
|
||||||
|
|
||||||
// ReSharper disable once ConvertIfStatementToConditionalTernaryExpression
|
IQueryable<HeartedLevel> whereHeartedLevels;
|
||||||
if (gameFilterType == "both")
|
|
||||||
// Get game versions less than the current version
|
// ReSharper disable once ConvertIfStatementToConditionalTernaryExpression
|
||||||
// Needs support for LBP3 ("both" = LBP1+2)
|
if (gameFilterType == "both")
|
||||||
whereHeartedLevels = this.database.HeartedLevels.Where(h => h.User.Username == username)
|
// 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);
|
.Where(h => (h.Slot.Type == SlotType.User || h.Slot.Type == SlotType.Developer) && !h.Slot.Hidden && h.Slot.GameVersion <= gameVersion && h.Slot.FirstUploaded >= oldestTime);
|
||||||
else
|
else
|
||||||
// Get game versions exactly equal to gamefiltertype
|
// Get game versions exactly equal to gamefiltertype
|
||||||
whereHeartedLevels = this.database.HeartedLevels.Where(h => h.User.Username == username)
|
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);
|
.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
|
#endregion Filtering
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue