public override void OnMatchScoreIncreased(Match match) { bool matchExistInThisGroup = Matches.Where(currentMatch => currentMatch.Id == match.Id).Any(); if (!matchExistInThisGroup) { // LOG Error: Match does not exist in this group return; } if (BracketNodeSystem == null) { BracketNodeSystem = new BracketNodeSystem(); BracketNodeSystem.Construct(Matches); } BracketNode finalNode = BracketNodeSystem.FinalNode; bool matchIsFinished = match.GetPlayState() == PlayStateEnum.Finished; bool matchIsNotFinal = match.Id != finalNode.Match.Id; if (matchIsFinished && matchIsNotFinal) { BracketNode bracketNode = finalNode.GetBracketNodeByMatchId(match.Id); BracketNode parentNode = bracketNode.Parent; parentNode.Match.AssignPlayerReferenceToFirstAvailablePlayer(match.GetWinningPlayer().PlayerReferenceId); } }
public override bool ConstructGroupLayout(int playersPerGroupCount) { int matchCount = playersPerGroupCount - 1; ChangeMatchCountTo(matchCount); if (Matches.Count > 0) { BracketNodeSystem = new BracketNodeSystem(); BracketNodeSystem.Construct(Matches); } return(true); }