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