Skip to content

Commit

Permalink
Fix not trimming filter parameters (#650)
Browse files Browse the repository at this point in the history
* Fix not trimming filter parameters

* Trim more filters
  • Loading branch information
NoahStolk authored Sep 9, 2024
1 parent 18c4704 commit e4dc1ec
Show file tree
Hide file tree
Showing 12 changed files with 39 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ public async Task<Page<GetCustomEntryForOverview>> GetCustomEntriesAsync(string?

if (!string.IsNullOrWhiteSpace(filter))
{
filter = filter.Trim();

// ! Navigation property.
customEntriesQuery = customEntriesQuery.Where(ce => ce.Player!.PlayerName.Contains(filter) || ce.CustomLeaderboard!.Spawnset!.Name.Contains(filter));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ public async Task<Page<GetCustomLeaderboardForOverview>> GetCustomLeaderboardsAs

if (!string.IsNullOrWhiteSpace(filter))
{
filter = filter.Trim();

// ! Navigation property.
customLeaderboardsQuery = customLeaderboardsQuery.Where(cl => cl.Spawnset!.Name.Contains(filter));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ public async Task<Page<GetDonationForOverview>> GetDonationsAsync(string? filter

if (!string.IsNullOrWhiteSpace(filter))
{
filter = filter.Trim();

// ! Navigation property.
donationsQuery = donationsQuery.Where(d => d.Player!.PlayerName.Contains(filter));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,10 @@ public async Task<Page<GetModForOverview>> GetModsAsync(string? filter, int page
IQueryable<ModEntity> modsQuery = _dbContext.Mods.AsNoTracking();

if (!string.IsNullOrWhiteSpace(filter))
{
filter = filter.Trim();
modsQuery = modsQuery.Where(m => m.Name.Contains(filter));
}

modsQuery = sortBy switch
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ public async Task<Page<GetPlayerForOverview>> GetPlayersAsync(string? filter, in

if (!string.IsNullOrWhiteSpace(filter))
{
filter = filter.Trim();

playersQuery = playersQuery.Where(p =>
p.PlayerName.Contains(filter) ||
p.CommonName != null && p.CommonName.Contains(filter) ||
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ public async Task<Page<GetSpawnsetForOverview>> GetSpawnsetsAsync(string? filter

if (!string.IsNullOrWhiteSpace(filter))
{
filter = filter.Trim();

// ! Navigation property.
spawnsetsQuery = spawnsetsQuery.Where(s => s.Name.Contains(filter) || s.Player!.PlayerName.Contains(filter));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ public async Task<Page<GetUser>> GetUsersAsync(string? filter, int pageIndex, in

if (!string.IsNullOrWhiteSpace(filter))
{
filter = filter.Trim();

// ! Navigation property.
usersQuery = usersQuery.Where(u =>
u.Name.Contains(filter) ||
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,16 @@ public async Task<Page<CustomLeaderboardOverview>> GetCustomLeaderboardOverviews
// Casing is ignored by default because of IQueryable.
if (!string.IsNullOrWhiteSpace(spawnsetFilter))
{
spawnsetFilter = spawnsetFilter.Trim();

// ! Navigation property.
customLeaderboardsQuery = customLeaderboardsQuery.Where(cl => cl.Spawnset!.Name.Contains(spawnsetFilter));
}

if (!string.IsNullOrWhiteSpace(authorFilter))
{
authorFilter = authorFilter.Trim();

// ! Navigation property.
customLeaderboardsQuery = customLeaderboardsQuery.Where(cl => cl.Spawnset!.Player!.PlayerName.Contains(authorFilter));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,17 @@ public async Task<List<GetModDdae>> GetMods(string? authorFilter = null, string?

if (!string.IsNullOrWhiteSpace(authorFilter))
{
authorFilter = authorFilter.Trim();

// ! Navigation property.
modsQuery = modsQuery.Where(m => m.PlayerMods!.Exists(pm => pm.Player!.PlayerName.Contains(authorFilter, StringComparison.InvariantCultureIgnoreCase)));
}

if (!string.IsNullOrWhiteSpace(nameFilter))
{
nameFilter = nameFilter.Trim();
modsQuery = modsQuery.Where(m => m.Name.Contains(nameFilter, StringComparison.InvariantCultureIgnoreCase));
}

List<ModEntity> mods = modsQuery.ToList();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,17 @@ public async Task<List<GetSpawnsetDdse>> GetSpawnsets(string? authorFilter = nul

if (!string.IsNullOrWhiteSpace(authorFilter))
{
authorFilter = authorFilter.Trim();

// ! Navigation property.
spawnsetsQuery = spawnsetsQuery.Where(sf => sf.Player!.PlayerName.Contains(authorFilter));
}

if (!string.IsNullOrWhiteSpace(nameFilter))
{
nameFilter = nameFilter.Trim();
spawnsetsQuery = spawnsetsQuery.Where(sf => sf.Name.Contains(nameFilter));
}

List<int> spawnsetsWithCustomLeaderboardIds = await _dbContext.CustomLeaderboards
.Select(cl => cl.SpawnsetId)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,15 @@ public async Task<ActionResult<Page<GetModOverview>>> GetMods(

// OrdinalIgnoreCase works here because this is an IEnumerable. Spawnset and custom leaderboard queries do not require this, and use IQueryable, so OrdinalIgnoreCase will not work there and casing is ignored by default.
if (!string.IsNullOrWhiteSpace(modFilter))
{
modFilter = modFilter.Trim();
modsQuery = modsQuery.Where(m => m.Name.Contains(modFilter, StringComparison.OrdinalIgnoreCase));
}

if (!string.IsNullOrWhiteSpace(authorFilter))
{
authorFilter = authorFilter.Trim();

// ! Navigation property.
modsQuery = modsQuery.Where(m => m.PlayerMods!.Exists(pm => pm.Player!.PlayerName.Contains(authorFilter, StringComparison.OrdinalIgnoreCase)));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,15 @@ public async Task<ActionResult<Page<GetSpawnsetOverview>>> GetSpawnsets(

// Casing is ignored by default because of IQueryable.
if (!string.IsNullOrWhiteSpace(spawnsetFilter))
{
spawnsetFilter = spawnsetFilter.Trim();
spawnsetsQuery = spawnsetsQuery.Where(s => s.Name.Contains(spawnsetFilter));
}

if (!string.IsNullOrWhiteSpace(authorFilter))
{
authorFilter = authorFilter.Trim();

// ! Navigation property.
spawnsetsQuery = spawnsetsQuery.Where(s => s.Player!.PlayerName.Contains(authorFilter));
}
Expand Down

0 comments on commit e4dc1ec

Please sign in to comment.