Пример #1
0
        /// <summary>
        /// Initialize eco-system for the first time.
        /// </summary>
        /// <returns></returns>
        private async Task InitAsync()
        {
            // Step 1: Read PES data and transform it to COAL data
            PESDataReader reader = new PESDataReader();

            // Get Clubs and insert them into COAL DB.
            var clubs = await reader.ReadClubsAsync(settings.DataPath);

            clubs = await this.clubService.CreateManyAsync(clubs);

            // Generate teams.
            var teams = await this.generatorService.GenerateTeamsAsync(clubs);

            // Get Players and insert them into COAL DB.
            var players = await reader.ReadPlayersAsync(settings.DataPath);

            players = await this.playerService.CreateManyAsync(players);

            // ToDo: Get competitions (competitions, competition regulations, )

            // Get Competitions
            var competitions = await reader.ReadCompetitionsAsync(settings.DataPath);

            competitions = await this.competitionService.CreateManyAsync(competitions);

            // Apply competition entries ( competition <-> team assignments)
            var competitionEntries = await reader.ReadCompetitionEntriesAsync(settings.DataPath);

            competitions = await this.competitionService.ApplyCompetitionEntriesAsync(competitionEntries);

            // Create tables and matches for competitions
            foreach (var competition in competitions)
            {
                if (competition.Teams.Count == 0)
                {
                    continue;
                }

                await this.tableService.CreateFromCompetitionAsync(competition);

                if (competition.Teams.Count > 2)
                {
                    await this.matchService.CreateFixturesFromCompetitionAsync(competition);
                }
            }


            // Step 2: Apply data assignments (player <-> team, etc.)
            var teamAssignments = await reader.ReadPlayerAssignmentsAsync(settings.DataPath);

            await this.playerService.ApplyTeamAssignmentsAsync(teamAssignments);

            // Step 3: Generate additional data we need ( reserve players, youth players, coaches, contracts, etc.)
            var additionalPlayers = await this.generatorService.GeneratePlayersAsync(clubs, ClubGenerationMode.ReservesAndYouth);

            // Step 4: Generate lower leagues completely randomly

            // ToDo: Get real contract lenght (and maybe wages)
            var contracts = await this.generatorService.GenerateContractsAsync(players);
        }
Пример #2
0
 public void Setup()
 {
     this.reader = new PESDataReader();
 }