public void Score(ScoringType scoringType) { // Clear old scores: foreach (Pair pair in Pairs) { pair.Score = 0; } // Score all sessions if (scoringType == ScoringType.MatchPoints) { _scoringEngine = new MatchPointsScoringEngine(); } else if (scoringType == ScoringType.IMPsAcross) { _scoringEngine = new IMPsAcrossScoringEngine(); } var results = new List <BoardResult>(); foreach (Session session in Sessions) { results.AddRange(session.Score(_scoringEngine)); } // Aggregate pair scores foreach (BoardResult br in results) { foreach (Result result in br.Results) { result.Table.NorthSouthPair.Score += result.NorthSouthScore; result.Table.EastWestPair.Score -= result.NorthSouthScore; } } // Sort Pair list: Pairs.Sort(); }
public List <BoardResult> Score(IScoringEngine engine) { foreach (BoardResult res in BoardResults) { res.Score(engine); } return(BoardResults); }
public List <BoardResult> Score(IScoringEngine engine) { List <BoardResult> ret = new List <BoardResult>(); foreach (Round round in Rounds) { ret.AddRange(round.Score(engine)); } return(ret); }
private IScoringEngine CreateScoringEngine() { lock (_sharedObject) { if (!_appDomainManager.IsDomainExist(DomainName)) { _appDomainManager.CreateNonTrustedDomain(DomainName, PathToAssembly); } var typeOfScoreEngine = _appDomainManager.GetType(PathToAssembly, typeof(IScoringEngine)); _scoringEngine = _appDomainManager.CreateInstanceInsideDomain <IScoringEngine>(DomainName, typeOfScoreEngine); } return(null); }
public void Score(IScoringEngine engine) { engine.ScoreBoard(Results); }