public static void PopulatePlayerStatsData(JToken player, Form form) { var getimgtask = ImageDownloader.GetChampionIconImageAsync(player["SKIN"].ToString()); Task <string>[] itemTasks = new Task <string> [7]; for (int taskCounter = 0; taskCounter < 7; taskCounter++) { itemTasks[taskCounter] = ImageDownloader.GetItemImageAsync(player["ITEM" + taskCounter].ToObject <int>()); } form.BeginInvoke((Action)(async() => { ///// General Information var champimage = (PictureBox)form.Controls.Find("PlayerStatsChampImage", true)[0]; var imgpath = await getimgtask; if (!string.IsNullOrEmpty(imgpath)) { champimage.WaitOnLoad = false; champimage.LoadAsync(imgpath); } else { champimage.Image = champimage.ErrorImage; } var victorylabel = (TextBox)form.Controls.Find("PlayerStatswin", true)[0]; if (player["WIN"].ToString() == "Fail") { victorylabel.Text = "Defeat"; victorylabel.ForeColor = Color.Red; } else { victorylabel.Text = "Victory!"; victorylabel.ForeColor = Color.Green; } var champlabel = (TextBox)form.Controls.Find("PlayerStatsChampName", true)[0]; champlabel.Text = player["SKIN"].ToString(); var levellabel = (TextBox)form.Controls.Find("PlayerStatsChampLevel", true)[0]; levellabel.Text = $"Level {player["LEVEL"].ToString()}"; var kdalabel = (TextBox)form.Controls.Find("PlayerStatsKDA", true)[0]; kdalabel.Text = $"{player["CHAMPIONS_KILLED"].ToString()} / {player["NUM_DEATHS"].ToString()} / {player["ASSISTS"].ToString()}"; var cslabel = (TextBox)form.Controls.Find("PlayerStatsCreeps", true)[0]; cslabel.Text = $"{player["MINIONS_KILLED"].ToString()} CS"; ///// Player Gold var goldearnedlabel = (TextBox)form.Controls.Find("PlayerGoldEarned", true)[0]; if (int.TryParse(player["GOLD_EARNED"].ToString(), out int goldearned)) { goldearnedlabel.Text = goldearned.ToString("N0"); } var goldspendlabel = (TextBox)form.Controls.Find("PlayerGoldSpent", true)[0]; if (int.TryParse(player["GOLD_SPENT"].ToString(), out int goldspent)) { goldspendlabel.Text = goldspent.ToString("N0"); } var neutralkillslabel = (TextBox)form.Controls.Find("PlayerGoldNeutralCreeps", true)[0]; neutralkillslabel.Text = player["NEUTRAL_MINIONS_KILLED"].ToString(); var towerskilledlabel = (TextBox)form.Controls.Find("PlayerGoldTowerKills", true)[0]; towerskilledlabel.Text = player["TURRETS_KILLED"].ToString(); ///// Player Misc Stats Table var damagetochampslabel = (TextBox)form.Controls.Find("PlayerTotalDamageToChampions", true)[0]; if (int.TryParse(player["TOTAL_DAMAGE_DEALT_TO_CHAMPIONS"].ToString(), out int totaldamagetochamps)) { damagetochampslabel.Text = totaldamagetochamps.ToString("N0"); } var damagetoobjlabel = (TextBox)form.Controls.Find("PlayerTotalDamageToObjectives", true)[0]; if (int.TryParse(player["TOTAL_DAMAGE_DEALT_TO_OBJECTIVES"].ToString(), out int totaldamagetoobjective)) { damagetoobjlabel.Text = totaldamagetoobjective.ToString("N0"); } var damagetotowerlabel = (TextBox)form.Controls.Find("PlayerTotalDamageToTurrets", true)[0]; if (int.TryParse(player["TOTAL_DAMAGE_DEALT_TO_TURRETS"].ToString(), out int totaldamagetotower)) { damagetotowerlabel.Text = totaldamagetotower.ToString("N0"); } var totaldamagelabel = (TextBox)form.Controls.Find("PlayerTotalDamageDealt", true)[0]; if (int.TryParse(player["TOTAL_DAMAGE_DEALT"].ToString(), out int totaldamage)) { totaldamagelabel.Text = totaldamage.ToString("N0"); } var totalheallabel = (TextBox)form.Controls.Find("PlayerDamageHealed", true)[0]; if (int.TryParse(player["TOTAL_HEAL"].ToString(), out int totalheal)) { totalheallabel.Text = totalheal.ToString("N0"); } var totaltakenlabel = (TextBox)form.Controls.Find("PlayerDamageTaken", true)[0]; if (int.TryParse(player["TOTAL_DAMAGE_TAKEN"].ToString(), out int totaltaken)) { totaltakenlabel.Text = totaltaken.ToString("N0"); } var visionscorelabel = (TextBox)form.Controls.Find("PlayerVisionScore", true)[0]; if (int.TryParse(player["VISION_SCORE"].ToString(), out int visionscore)) { visionscorelabel.Text = visionscore.ToString("N0"); } var wardsplacedlabel = (TextBox)form.Controls.Find("PlayerWardsPlaced", true)[0]; if (int.TryParse(player["WARD_PLACED"].ToString(), out int wardsplaced)) { wardsplacedlabel.Text = wardsplaced.ToString("N0"); } ///// Player Inventory var allboxes = form.Controls.Find("PlayerSpellsItemsTable", true)[0].Controls; var itemboxes = (from Control boxes in allboxes where boxes.Name.Contains("PlayerItemImage") select boxes).Cast <PictureBox>().ToArray(); for (int loadImageCounter = 0; loadImageCounter < 7; loadImageCounter++) { var itemPath = await itemTasks[loadImageCounter]; if (!string.IsNullOrEmpty(itemPath)) { itemboxes[loadImageCounter].WaitOnLoad = false; itemboxes[loadImageCounter].LoadAsync(itemPath); } else { itemboxes[loadImageCounter].Image = itemboxes[loadImageCounter].ErrorImage; } } })); }