public static LeaderboardDTO MapUserToLeaderboardDTO(User usr) { if (usr != null) { LeaderboardDTO leaderboardEntry = new LeaderboardDTO() { UserId = usr.UserId, FamilyName = usr.FamilyName, FirstName = usr.FirstName, Score = usr.GetCurrentLeaderboardScore() }; return(leaderboardEntry); } return(null); }
/// <summary> /// Get player ranking in a given leaderboard. /// </summary> /// <param name="accountId">Account id of player.</param> /// <param name="statId">Index of stat. Starts at 1.</param> /// <returns>Leaderboard result for player.</returns> public async Task <LeaderboardDTO> GetPlayerLeaderboardIndex(int accountId, int statId) { LeaderboardDTO result = null; try { if (_settings.SimulatedMode) { var account = await GetAccountById(accountId); if (account == null) { return(null); } return(new LeaderboardDTO() { AccountId = accountId, AccountName = account.AccountName, Index = 1, MediusStats = account.MediusStats, StatValue = account.AccountWideStats[statId], TotalRankedAccounts = 1 }); } else { result = await GetDbAsync <LeaderboardDTO>($"Stats/getPlayerLeaderboardIndex?AccountId={accountId}&StatId={statId}"); } } catch (Exception e) { Logger.Error(e); } return(result); }