protected override void CalculatePriorities(IEnumerable <TableRecord> records) { // If previous rules haven't solved any rows, the recursion must be stopped. if (records.Count() == Records.Count()) { return; } short tourneyId = records.First().tourneyId; IEnumerable <int> teamIds = records.Select(rg => rg.teamId); IEnumerable <Game> games = gameBll.GetGamesByTourneyBetweenTeams(tourneyId, teamIds); if (!games.Any()) { return; } TableBase table = new ClassicTable(); table.BuildFromGames(tourneyId, games); IRanking ranking = new Implementations.Components.Ranking(); ranking.CalculateTable(Rule, games); IEnumerable <TableRecord> prioritizedTable = ranking.CalculateTable(Rule, games); foreach (TableRecord record in records) { record.PointsVirtual = prioritizedTable.FirstOrDefault()?.PointsVirtual ?? 0; } }
public RankingTableViewModel Get(int id) { // IEnumerable<TableRecord> tableRecords = tableRecordBll.GetTourneyTable(id); gameBll.FillTeams = true; IEnumerable <Game> games = gameBll.GetGamesByTourney(id); TableBase table = new ClassicTable(); table.BuildFromGames((short)id, games); return(TableDecorator.SortTableByRule1(table).OrderBy(r => r.Points).ToViewModel("test")); }
private TableBase CalculateTableByRule(int rule, IEnumerable <Game> games, short tourneyId = 0) { TableBase table; switch (rule) { case 1: table = new ClassicTable(); break; default: table = new ClassicTable(); break; } table.BuildFromGames(tourneyId, games); return(table); }