void AssignLeaderDisplayBoxTexts(EUserStats userStat) { int rankLoopCounter = 0; foreach (GameObject box in LeaderRowBoxes) { var texts = box.GetComponentsInChildren <Text>(); foreach (Text currentText in texts) { switch (currentText.name) { case nameof(ELeaderboardBoxTexts.LeaderboardRankingLabel): currentText.text = (rankLoopCounter + 1).ToString(); break; case nameof(ELeaderboardBoxTexts.LeaderboardPlayerNameLabel): currentText.text = usernames[rankLoopCounter]; break; case nameof(ELeaderboardBoxTexts.LeaderboardStatValueLabel): currentText.text = statList[rankLoopCounter].ToString(); break; default: break; } } rankLoopCounter += 1; } }
public async Task UpdatePlayerStatAsync(EUserStats userStat, PlayerStatBlock statBlock) { DbCommand dbCommand = ConnectionManager.GetConnection().CreateCommand(); string updateQuery = "UPDATE UserStats SET " + userStat.ToString() + " = @" + userStat.ToString() + " WHERE userID = @ID;"; ConnectionManager.CreateNamedParamater("@ID", UserSessionManager.GetID(), dbCommand); switch (userStat) { case EUserStats.distanceTraveled: ConnectionManager.CreateNamedParamater("@" + userStat.ToString(), statBlock.totalDistanceTraveled, dbCommand); break; case EUserStats.goldEarned: ConnectionManager.CreateNamedParamater("@" + userStat.ToString(), statBlock.totalGoldCollected, dbCommand); break; case EUserStats.nodesHarvested: ConnectionManager.CreateNamedParamater("@" + userStat.ToString(), statBlock.totalGatheringPointsHarvested, dbCommand); break; default: break; } dbCommand.CommandText = updateQuery; await Task.Run(() => dbCommand.ExecuteNonQuery()); dbCommand.Dispose(); }
public async Task QueryRankingStatAsync(EUserStats userStat, List <string> usernames, IList statList) { ConnectionManager.GetCMInstance(); DbCommand dbCommand = ConnectionManager.GetConnection().CreateCommand(); //Variables don't seem to work with the formating for this query. string selectQuery = "SELECT UserStats." + userStat.ToString() + ", UserAccounts.username FROM UserStats INNER JOIN UserAccounts ON UserStats.UserID = UserAccounts.ID ORDER BY " + userStat.ToString() + " desc;"; dbCommand.CommandText = selectQuery; Task <DbDataReader> readerTask = dbCommand.ExecuteReaderAsync(); DbDataReader reader = await readerTask; while (await reader.ReadAsync()) { switch (userStat) { case EUserStats.distanceTraveled: statList.Add(reader.GetFloat(0)); break; case EUserStats.goldEarned: statList.Add(reader.GetInt32(0)); break; case EUserStats.nodesHarvested: statList.Add(reader.GetInt32(0)); break; default: break; } usernames.Add(reader.GetString(1)); } reader.Close(); reader.Dispose(); dbCommand.Dispose(); }