Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
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"));
        }
Ejemplo n.º 3
0
        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);
        }