From f17c4ff5ab56b8be1d38f02ee9650f24967285f0 Mon Sep 17 00:00:00 2001 From: Simon <63975668+Simyon264@users.noreply.github.com> Date: Sat, 24 Aug 2024 18:55:02 +0200 Subject: [PATCH] Fix profiles erroring when the player never played Fixes #21 --- ReplayBrowser/Helpers/ReplayHelper.cs | 23 ++++++++++++++++++++++- ReplayBrowser/Pages/Profile.razor | 12 ------------ 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/ReplayBrowser/Helpers/ReplayHelper.cs b/ReplayBrowser/Helpers/ReplayHelper.cs index 17d972d..5b60874 100644 --- a/ReplayBrowser/Helpers/ReplayHelper.cs +++ b/ReplayBrowser/Helpers/ReplayHelper.cs @@ -105,7 +105,7 @@ public async Task GetPlayerProfile(Guid playerGuid, Authent }); } - var replayPlayers = await _context.Players + var replayPlayers = await _context.Players .AsNoTracking() .Where(p => p.Participant.PlayerGuid == playerGuid) .Where(p => p.Participant.Replay!.Date != null) @@ -121,6 +121,27 @@ public async Task GetPlayerProfile(Guid playerGuid, Authent }) .ToListAsync(); + if (replayPlayers.Count == 0) + { + return new CollectedPlayerData() + { + PlayerData = new PlayerData() + { + PlayerGuid = playerGuid, + Username = (await _apiHelper.FetchPlayerDataFromGuid(playerGuid)).Username ?? + "Unable to fetch username (API error)" + }, + PlayerGuid = playerGuid, + Characters = new List(), + TotalEstimatedPlaytime = TimeSpan.Zero, + TotalRoundsPlayed = 0, + TotalAntagRoundsPlayed = 0, + LastSeen = DateTime.MinValue, + JobCount = new List(), + GeneratedAt = DateTime.UtcNow + }; + } + var replayPlayerGroup = replayPlayers.GroupBy(rp => rp.ReplayId); var totalRoundsPlayed = replayPlayerGroup.Count(); diff --git a/ReplayBrowser/Pages/Profile.razor b/ReplayBrowser/Pages/Profile.razor index d25bbd1..15b497e 100644 --- a/ReplayBrowser/Pages/Profile.razor +++ b/ReplayBrowser/Pages/Profile.razor @@ -23,11 +23,6 @@ else if (IsPrivate)

Protected data (@Username)

@(Exception?.Message ?? "No info")

} -else if (FailedToLoad) -{ -

Error (@Username)

-

Failed to load player data. Exception: @(Exception?.Message ?? "No info")

-} else {