Example #1
0
        public IEnumerable <Player> GenerateSquad(Team team, int averageRating)
        {
            var squad = new List <Player>();

            using (var lineRepository = new RepositoryFactory().CreateLineRepository())
            {
                // Generate 2 or 3 goalkeepers.
                int howMany = _numberRandomizer.GetNumber(2, 3);
                var line    = lineRepository.GetGoalkeeper();
                squad.AddRange(GeneratePlayersForLine(line, howMany, averageRating));

                // Generate between 5 and 7 defenders.
                howMany = _numberRandomizer.GetNumber(5, 7);
                line    = lineRepository.GetDefence();
                squad.AddRange(GeneratePlayersForLine(line, howMany, averageRating));

                // Generate between 5 and 7 midfielders.
                howMany = _numberRandomizer.GetNumber(5, 7);
                line    = lineRepository.GetMidfield();
                squad.AddRange(GeneratePlayersForLine(line, howMany, averageRating));

                // Generate between 4 and 6 attackers.
                howMany = _numberRandomizer.GetNumber(4, 6);
                line    = lineRepository.GetAttack();
                squad.AddRange(GeneratePlayersForLine(line, howMany, averageRating));
            }

            int teamOrder = 0;

            foreach (var player in squad)
            {
                player.Team      = team;
                player.TeamOrder = teamOrder++;
            }

            return(squad);
        }
Example #2
0
        private void CreateGameData(RepositoryFactory repositoryFactory, string gameId)
        {
            using (var transactionManager = repositoryFactory.CreateTransactionManager())
            {
                // Create GameInfo.
                // Overrule the GameInfo Id with the Game Id.
                var gameInfo = new GameInfo
                {
                    Name = DateTime.Now.ToString("yyyyMMddHHmmss"),
                    Id   = gameId
                };

                // Create teams and players.
                var teamsAndPlayers = CreateTeamsAndPlayers(repositoryFactory);

                // ===================================================================
                //TODO OK, let MODDERVOKKIN op
                var numberRandomizer = new NumberRandomizer();
                int randomIndex      = numberRandomizer.GetNumber(0, Constants.HowManyTeamsPerLeague * Constants.HowManyLeagues - 1);
                gameInfo.CurrentTeam = teamsAndPlayers.Teams[randomIndex];
                // ===================================================================

                transactionManager.RegisterInsert(gameInfo);

                // Insert teams.
                transactionManager.RegisterInsert(teamsAndPlayers.Teams);

                // Insert players.
                transactionManager.RegisterInsert(teamsAndPlayers.Players);

                // Create a season with match schedules.
                var seasonManager = new SeasonManager(repositoryFactory, gameInfo.CurrentTeam);
                seasonManager.CreateFirstSeason(teamsAndPlayers.Teams, transactionManager);

                transactionManager.Save();
            }
        }