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); }
public void Remove(TeamName teamName) { TeamNameRepository.Remove(teamName); }
public void Add(TeamName teamName) { TeamNameRepository.Add(teamName); }