public async Task <List <Team> > GetAllTeams() { var response = await _httpClient.GetAsync("bootstrap-static/"); response.EnsureSuccessStatusCode(); var content = await response.Content.ReadAsStringAsync(); var allTeamsJSON = AllChildren(JObject.Parse(content)) .First(c => c.Type == JTokenType.Array && c.Path.Contains("teams")) .Children <JObject>(); List <Team> allTeams = new List <Team>(); foreach (JObject result in allTeamsJSON) { Team t = result.ToObject <Team>(); if (!allTeams.Any(x => x.id == t.id)) { allTeams.Add(t); } } return(allTeams); }
public async Task <List <Game> > PopulateGameListWithTeams(List <Game> games) { var response = await _httpClient.GetAsync("bootstrap-static/"); response.EnsureSuccessStatusCode(); var content = await response.Content.ReadAsStringAsync(); var allTeamsJSON = AllChildren(JObject.Parse(content)) .First(c => c.Type == JTokenType.Array && c.Path.Contains("teams")) .Children <JObject>(); List <Team> allTeams = new List <Team>(); foreach (JObject result in allTeamsJSON) { Team t = result.ToObject <Team>(); allTeams.Add(t); } foreach (Game game in games) { foreach (Team team in allTeams) { if (team.id == game.team_h) { game.HomeTeam = team; } else if (team.id == game.team_a) { game.AwayTeam = team; } } } return(games); }
private async Task <List <Pick> > AddPlayerSummaryDataToTeam(List <Pick> teamPicks, int gameweekId) { var response = await _httpClient.GetAsync("bootstrap-static/"); response.EnsureSuccessStatusCode(); var content = await response.Content.ReadAsStringAsync(); var allPlayersJSON = AllChildren(JObject.Parse(content)) .First(c => c.Type == JTokenType.Array && c.Path.Contains("elements")) .Children <JObject>(); List <Player> allPlayers = new List <Player>(); foreach (JObject result in allPlayersJSON) { Player p = result.ToObject <Player>(); allPlayers.Add(p); foreach (Pick pick in teamPicks) { if (p.id == pick.element) { pick.player = p; pick.NetProfitOnTransfer = pick.selling_price - pick.purchase_price; } } } foreach (var player in allPlayers) { player.FplIndex = (float)player.bps + float.Parse(player.ict_index, CultureInfo.InvariantCulture.NumberFormat); } var allPlayersByBps = allPlayers.OrderByDescending(m => m.bps).ToList(); var allGoalkeepersByBps = allPlayers.Where(x => x.element_type == 1).OrderByDescending(m => m.bps).ToList(); var allDefendersByBps = allPlayers.Where(x => x.element_type == 2).OrderByDescending(m => m.bps).ToList(); var allMidfieldersByBps = allPlayers.Where(x => x.element_type == 3).OrderByDescending(m => m.bps).ToList(); var allForwardsByBps = allPlayers.Where(x => x.element_type == 4).OrderByDescending(m => m.bps).ToList(); var allPlayersByFplIndex = allPlayers.OrderByDescending(m => m.FplIndex).ToList(); var allGoalkeepersByFplIndex = allPlayers.Where(x => x.element_type == 1).OrderByDescending(m => m.FplIndex).ToList(); var allDefendersByFplIndex = allPlayers.Where(x => x.element_type == 2).OrderByDescending(m => m.FplIndex).ToList(); var allMidfieldersByFplIndex = allPlayers.Where(x => x.element_type == 3).OrderByDescending(m => m.FplIndex).ToList(); var allForwardsByFplIndex = allPlayers.Where(x => x.element_type == 4).OrderByDescending(m => m.FplIndex).ToList(); foreach (var player in allPlayers) { player.BpsRank = allPlayersByBps.IndexOf(player) + 1; player.FplRank = allPlayersByFplIndex.IndexOf(player) + 1; if (player.element_type == 1) { player.BpsPositionRank = allGoalkeepersByBps.IndexOf(player) + 1; player.FplPositionRank = allGoalkeepersByFplIndex.IndexOf(player) + 1; } else if (player.element_type == 2) { player.BpsPositionRank = allDefendersByBps.IndexOf(player) + 1; player.FplPositionRank = allDefendersByFplIndex.IndexOf(player) + 1; } if (player.element_type == 3) { player.BpsPositionRank = allMidfieldersByBps.IndexOf(player) + 1; player.FplPositionRank = allMidfieldersByFplIndex.IndexOf(player) + 1; } else if (player.element_type == 4) { player.BpsPositionRank = allForwardsByBps.IndexOf(player) + 1; player.FplPositionRank = allForwardsByFplIndex.IndexOf(player) + 1; } } var allTeamsJSON = AllChildren(JObject.Parse(content)) .First(c => c.Type == JTokenType.Array && c.Path.Contains("teams")) .Children <JObject>(); List <Team> allTeams = new List <Team>(); foreach (JObject result in allTeamsJSON) { Team t = result.ToObject <Team>(); allTeams.Add(t); foreach (Pick pick in teamPicks) { if (t.id == pick.player.TeamId) { pick.player.Team = t; } } } var response1 = await _httpClient.GetAsync("fixtures/"); response1.EnsureSuccessStatusCode(); var content1 = await response1.Content.ReadAsStringAsync(); List <Game> games = JsonConvert.DeserializeObject <List <Game> >(content1); List <Game> fixtures = games.FindAll(x => x.started == false); List <Game> results = games.FindAll(x => x.started == true); foreach (Pick pick in teamPicks) { pick.player.Team.Fixtures = new List <Game>(); pick.player.Team.Results = new List <Game>(); foreach (Game fixture in fixtures) { if (pick.player.TeamId == fixture.team_h || pick.player.TeamId == fixture.team_a) { pick.player.Team.Fixtures.Add(fixture); } } foreach (Game playerFixture in pick.player.Team.Fixtures) { foreach (Team t in allTeams) { if (playerFixture.team_h == t.id) { playerFixture.team_h_name = t.name; playerFixture.team_h_short_name = t.short_name; } if (playerFixture.team_a == t.id) { playerFixture.team_a_name = t.name; playerFixture.team_a_short_name = t.short_name; } } } foreach (Game result in results) { if (pick.player.TeamId == result.team_h || pick.player.TeamId == result.team_a) { pick.player.Team.Results.Add(result); } Stat totalBps = result.stats[9]; List <PlayerStat> homeBps = totalBps.h; List <PlayerStat> awayBps = totalBps.a; List <PlayerStat> allPlayersInGameBps = homeBps.Concat(awayBps).ToList(); allPlayersInGameBps = allPlayersInGameBps.OrderByDescending(x => x.value).ToList(); for (var i = 0; i < allPlayersInGameBps.Count; i++) { if (pick.element == allPlayersInGameBps[i].element) { //currently only calculates players total bps ranking - need to find away to get average pick.player.AvgBpsRank += allPlayersInGameBps.IndexOf(allPlayersInGameBps[i]) + 1; } } } foreach (Game playerResult in pick.player.Team.Results) { foreach (Team t in allTeams) { if (playerResult.team_h == t.id) { playerResult.team_h_name = t.name; playerResult.team_h_short_name = t.short_name; } if (playerResult.team_a == t.id) { playerResult.team_a_name = t.name; playerResult.team_a_short_name = t.short_name; } } } } foreach (Pick pick in teamPicks) { if (gameweekId != 0 && pick.player.Team.Results.Count > 0) { pick.player.MinsPlayedPercentage = Math.Round((pick.player.minutes / (pick.player.Team.Results.Count * 90m)) * 100m, 1); if (pick.player.MinsPlayedPercentage > 100) { pick.player.MinsPlayedPercentage = 100; } } else { pick.player.MinsPlayedPercentage = 0; } } return(teamPicks); }