Example #1
0
        private TeamsAndPlayers CreateTeamsAndPlayers(RepositoryFactory repositoryFactory)
        {
            var teamManager   = new TeamManager(repositoryFactory);
            var playerManager = new PlayerManager();

            var teamsAndPlayers = new TeamsAndPlayers();

            // Generate all teams for this game.
            const int howManyTeams = Constants.HowManyTeamsPerLeague * Constants.HowManyLeagues;
            var       teams        = teamManager.Create(howManyTeams).ToList();

            // Assign team names.
            var teamNames = new TeamNameRepository().GetAll();

            for (int i = 0; i < teams.Count; i++)
            {
                teams[i].Name = teamNames[i];
            }

            teamsAndPlayers.Teams = teams;

            var averageRatingsPerLeague = new[] { 10, 40, 70, 100 };
            int averageRatingIndex      = 0;

            var startingLineupGenerator = new StartingLineupGenerator();

            foreach (var team in teams)
            {
                int teamIndex = teams.IndexOf(team);
                if (teamIndex > 0 && teamIndex % Constants.HowManyLeagues == 0)
                {
                    averageRatingIndex++;
                }

                int currentAverageRating = averageRatingsPerLeague[averageRatingIndex];
                var players = playerManager.GenerateSquad(team, currentAverageRating).ToList();

                var players2 = startingLineupGenerator.GenerateStartingLineup(players, team.Formation);

                teamsAndPlayers.Players.AddRange(players2);

                teamManager.UpdateRating(team, players.Where(p => p.InStartingEleven).ToList());
            }

            return(teamsAndPlayers);
        }
Example #2
0
 public void Remove(TeamName teamName)
 {
     TeamNameRepository.Remove(teamName);
 }
Example #3
0
 public void Add(TeamName teamName)
 {
     TeamNameRepository.Add(teamName);
 }