/// <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); }
public void Setup() { this.reader = new PESDataReader(); }