public List <List <MatchNode> > GetRoundData() { List <List <MatchNode> > rounds = new List <List <MatchNode> >(); int maxDepth = SingleEliminationFinal.GetNodeDepth(); for (int i = 0; i < maxDepth; i++) { List <MatchNode> round = new List <MatchNode>(); foreach (var match in GetAllMatches()) { if (match.GetNodeDepth() == i) { match.Update(); round.Add(match); } } rounds.Add(round); } if (SingleEliminationTeamEntryPoints.Count >= 4 && SingleEliminationThirdPlaceFinal != null) { List <MatchNode> thirdplace = new List <MatchNode>(); thirdplace.Add(SingleEliminationThirdPlaceFinal); rounds.Add(thirdplace); } List <MatchNode> lastRound = new List <MatchNode>(); lastRound.Add(SingleEliminationFinal); rounds.Add(lastRound); return(rounds); }