public static IEnumerable <Match> GetLeagueMatches(Tournament tournament)
        {
            var clubs = tournament.TournamentClubs.Select(tc => tc.Club).ToList();
            var shuffledClubbsList = new RandomShuffleListCreator <Club>(clubs);

            var clubKeyValues = new Dictionary <int, Club>();

            for (var i = 1; i <= 10; i++)
            {
                clubKeyValues.Add(i, shuffledClubbsList.Pop());
            }

            var matches = new List <Match>();

            foreach (var stage in LeagueMapper.Stages)
            {
                foreach (var match in stage.Matches)
                {
                    var m = Get(new MatchBuilderData
                    {
                        Stage          = stage.Stage,
                        Number         = match.Number,
                        HomeId         = clubKeyValues[match.HomeId].Id,
                        VisitorsId     = clubKeyValues[match.VisitorsId].Id,
                        TournamentType = TournamentType.League
                    });

                    matches.Add(m);
                }
            }

            return(matches);
        }
Exemple #2
0
        public static TEnum GetRandom <TEnum>(this Type type)
            where TEnum : struct, IComparable, IFormattable, IConvertible
        {
            var list = ToList <TEnum>(type);

            var creator = new RandomShuffleListCreator <TEnum>(list);

            return(creator.Get());
        }
Exemple #3
0
        private static List <Player> GeneratePlayers(Club club, Squad squad)
        {
            var shuffledPositions = new RandomShuffleListCreator <FormationPosition>(squad.FormationPositions);

            var shuffledLevels = new RandomShuffleListCreator <int>(StartPlayerLevelsMapper.Levels);

            var players = new List <Player>();

            for (int i = 0; i < squad.FormationPositions.Count; i++)
            {
                var formationPosition = shuffledPositions.Pop();
                var level             = shuffledLevels.Pop();

                players.Add(PlayerBuilder.Get(new PlayerBuilderData()
                {
                    Country  = club.Country,
                    Position = formationPosition.PlayerPosition,
                    Level    = level
                }));
            }

            return(players);
        }