public static void UpdateTournamentResults(TournamentModel model) { int startingRound = model.CheckCurrentRound(); // the matchup need to be score List <MatchupModel> toScore = new List <MatchupModel>(); foreach (List <MatchupModel> round in model.Rounds) { foreach (MatchupModel rm in round) { if (rm.Winner == null && (rm.Entris.Any(x => x.Score != 0) || rm.Entris.Count == 1)) { toScore.Add(rm); } } } MarkWinnerInMatchups(toScore); AdvanceWinners(toScore, model); toScore.ForEach(x => GlobalConfig.Connection.UpdateMatchup(x)); int endingRound = model.CheckCurrentRound(); if (endingRound > startingRound) { model.AlterUsersToNewRound(); } }