private void CalculateAdditionalData(PlayerMeritTableLine line, GameXPlayer playerGame, CompetitionEvent competitionEvent, MeritCalculationEngine config, IGameCalculationEngine engine, List <int> opponentScoresInWonGames, List <int> playerScoresInLostGames) { line.DataDecimal1 = CalculationHelper.CalculateAvLost(line, engine); line.DataDecimal2 = CalculationHelper.CalculateAvAll(line); if (config.EnableDropWorseResults) { this.SnapshotTotals(line); this.CalculateForDroppedGames(line, opponentScoresInWonGames, playerScoresInLostGames, competitionEvent.DataInt1.Value, competitionEvent.DataInt2.Value, engine); } line.DataString1 = ListHelper.ListToCsv(opponentScoresInWonGames); line.DataString2 = ListHelper.ListToCsv(playerScoresInLostGames); }
public Task Remove(PlayerMeritTable playerMeritTable, GameXPlayer playerGame, Team team, CompetitionEvent competitionEvent, MeritCalculationEngine config) { var line = playerMeritTable.GetOrCreateLine(team, playerGame.Player); var gameCalculationEngine = this._gameCalculationEngineFactory.Create(playerGame.Game.GameCalculationEngineID); line.Remove(playerGame); var droppedChalks = gameCalculationEngine.CalculateDroppedChalks(playerGame); line.RemoveDroppedChalks(playerGame, droppedChalks); var opponentScoresInWonGames = ListHelper.ConvertToList(line.DataString1); var playerScoresInLostGames = ListHelper.ConvertToList(line.DataString2); ListHelper.RemoveResultFromLists(playerGame, opponentScoresInWonGames, playerScoresInLostGames); this.CalculateAdditionalData(line, playerGame, competitionEvent, config, gameCalculationEngine, opponentScoresInWonGames, playerScoresInLostGames); return(Task.CompletedTask); }