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(); }); }