示例#1
0
 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);
 }
示例#2
0
        /// <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);
        }