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