public List <LeagueReiting> GetLeagueReiting() { List <LeagueReiting> selects = new List <LeagueReiting>(); List <LeagueReiting> answer = new List <LeagueReiting>(); foreach (var league in leagues) { var Team1 = league.matches.Where(x => x.score != null).GroupBy(b => b.team1).Select(g => new Team { Name = g.Key, TotalScored = g.Sum(a => a.score.ft[0]), TotalMissed = g.Sum(a => a.score.ft[1]), }).ToList(); var Team2 = league.matches.Where(x => x.score != null).GroupBy(b => b.team2).Select(g => new Team { Name = g.Key, TotalScored = g.Sum(a => a.score.ft[1]), TotalMissed = g.Sum(a => a.score.ft[0]), }).ToList(); Team1.AddRange(Team2); var query1 = new LeagueReiting { Name = league.name, Teams = Team1 }; selects.Add(query1); } foreach (var League in selects) { var teams = League.Teams.GroupBy(x => x.Name).Select(g => new Team { Name = g.Key, TotalScored = g.Sum(a => a.TotalScored), TotalMissed = g.Sum(a => a.TotalMissed), }).ToList(); var result = new LeagueReiting { Name = League.Name, Teams = teams }; answer.Add(result); } return(answer); }
public List <LeagueReiting> GetBestProtectiveTeam() { List <LeagueReiting> leagueReitings = GetLeagueReiting(); List <LeagueReiting> bestTeams = new List <LeagueReiting>(); foreach (var League in leagueReitings) { var team = League.Teams.OrderBy(x => x.TotalMissed).FirstOrDefault(); var result = new LeagueReiting { Name = League.Name, Teams = new List <Team> { team } }; bestTeams.Add(result); } return(bestTeams); }
public List <LeagueReiting> GetBestAttakingTeam() { List <LeagueReiting> leagueReitings = GetLeagueReiting(); List <LeagueReiting> bestTeams = new List <LeagueReiting>(); foreach (var league in leagueReitings) { var team = league.Teams.OrderByDescending(x => x.TotalScored).FirstOrDefault(); var result = new LeagueReiting { Name = league.Name, Teams = new List <Team> { team } }; bestTeams.Add(result); } return(bestTeams); }