private IEnumerator UpdatePointsMenu() { //Get leaderboard details to display on points menu string url = "http://127.0.0.1:5000/statistics/leaderboard"; using (UnityWebRequest webRequest = UnityWebRequest.Get(url)) { yield return(webRequest.SendWebRequest()); TMP_Text pointsContent = GameObject.Find("PointsContent").GetComponent <TMP_Text>(); TMP_Text pointsNumbers = GameObject.Find("PointsNumbers").GetComponent <TMP_Text>(); LeaderboardDetails leaderboard = JsonUtility.FromJson <LeaderboardDetails>(webRequest.downloadHandler.text); string displayText = ""; string numberText = ""; int i = 1; foreach (LeaderboardScoresDetails student in leaderboard.scores) { displayText += i.ToString() + "." + student.name + "\n"; numberText += student.score.ToString() + "\n"; i++; if (i > 17) { break; } } pointsContent.text = displayText; pointsNumbers.text = numberText; } }
private async Task UpdateLeaderboard(int regionId, List <PlayerEntity> players, IBinder binder, ILogger log) { var collection = players.Select(_ => new LeaderboardEntity() { RegionId = int.Parse(_.PartitionKey), AccountId = uint.Parse(_.RowKey), Ranking = _.Ranking, Total = _.Total, WinRate = _.WinRate, }).ToList(); var identities = collection.Select(_ => _.SteamId).ToArray(); var profiles = await GetProfiles(regionId, identities); if (profiles.Count() > 0) { collection = collection.Join(profiles, _ => _.SteamId, _ => _.steamid, (lhs, rhs) => new LeaderboardEntity() { RegionId = lhs.RegionId, AccountId = lhs.AccountId, Ranking = lhs.Ranking, Total = lhs.Total, WinRate = lhs.WinRate, Persona = rhs.personaname, Avatar = rhs.avatarfull }).ToList(); } var model = new LeaderboardDetails() { Region = regionId, List = collection }; var attr = new BlobAttribute(string.Format(LEADERBOARD_PATH, regionId)); var writer = await binder.BindAsync <TextWriter>(attr); var json = JsonConvert.SerializeObject(model); await writer.WriteAsync(json); }