Exemple #1
0
        public void ShouldCreateTeamRankingsFromRule()
        {
            var season        = new Season(null, "My Season", 1, null, null, null, null, true, false, 1, null);
            var playoffConfig = new PlayoffCompetitionConfig();
            var playoff       = new Playoff()
            {
                Year = 15
            };

            CreateSeasonDivisions(season);
            CreateSeasonTeams(season);
            CreateSeasonRankings(season);
            CreateRankingRules(playoffConfig);

            playoffConfig.CopyTeamsFromCompetition(playoff, season);
            playoffConfig.CopyRankingsFromCompetition(playoff, season);

            playoffConfig.RankingRules.OrderBy(rr => rr.GroupSetupLevel).ToList().ForEach(rule =>
            {
                playoffConfig.CreateRankingsFromRule(playoff, rule);
            });

            var topSeeds    = playoff.Rankings.Where(r => r.GroupName.Equals("Top Seeds"));
            var restOfTeams = playoff.Rankings.Where(r => r.GroupName.Equals("RemainingTeams"));

            StrictEqual(3, topSeeds.Count());
            StrictEqual(9, restOfTeams.Count());

            var seedName  = topSeeds.Select(r => r.CompetitionTeam.Name).ToList();
            var restNames = restOfTeams.Select(r => r.CompetitionTeam.Name).ToList();

            playoff.SeedRankingsGroups();

            StrictEqual(0, seedName.Where(r => restNames.Contains(r)).ToList().Count());
            StrictEqual(9, restNames.Count);

            Equal("Team 6", topSeeds.Where(r => r.Rank == 1).First().CompetitionTeam.Name);
            Equal("Team 10", topSeeds.Where(r => r.Rank == 2).First().CompetitionTeam.Name);
            Equal("Team 2", topSeeds.Where(r => r.Rank == 3).First().CompetitionTeam.Name);


            Equal("Team 7", restOfTeams.Where(r => r.Rank == 1).First().CompetitionTeam.Name);
            Equal("Team 1", restOfTeams.Where(r => r.Rank == 2).First().CompetitionTeam.Name);
            Equal("Team 11", restOfTeams.Where(r => r.Rank == 3).First().CompetitionTeam.Name);
            Equal("Team 9", restOfTeams.Where(r => r.Rank == 4).First().CompetitionTeam.Name);
            Equal("Team 8", restOfTeams.Where(r => r.Rank == 5).First().CompetitionTeam.Name);
            Equal("Team 12", restOfTeams.Where(r => r.Rank == 6).First().CompetitionTeam.Name);
            Equal("Team 5", restOfTeams.Where(r => r.Rank == 7).First().CompetitionTeam.Name);
            Equal("Team 4", restOfTeams.Where(r => r.Rank == 8).First().CompetitionTeam.Name);
            Equal("Team 3", restOfTeams.Where(r => r.Rank == 9).First().CompetitionTeam.Name);
        }
        public virtual void ProcessRankingRules(Playoff playoff)
        {
            var activeRankingRules = GetActiveRankingRules(playoff.Year);
            var levels             = activeRankingRules.Select(a => a.GroupSetupLevel).Distinct().ToList();

            levels.Sort();

            levels.ForEach(level =>
            {
                activeRankingRules.Where(arr => arr.GroupSetupLevel == level).ToList().ForEach(rule =>
                {
                    CreateRankingsFromRule(playoff, rule);
                });

                playoff.SeedRankingsGroups();
            });
        }