public async Task LoadTeamsAndResults() { _dataBaseTools.Reset(); var teams = GetTeams(); foreach (var team in teams) { FillTeamDetails(team); await _teamRepository.AddAsync(team); await _teamRepository.SaveChangesAsync(); } foreach (var team in teams) { var results = GetTeamResults(team); foreach (var result in results) { var versusTeam = await _teamRepository.GetTeamByNameAsync(result.VersusTeam); var thisTeam = await _teamRepository.GetTeamByNameAsync(team.Name); var hasGameAlreadyBeenPlayed = result.Result.Split('-').Length == 2; if (!hasGameAlreadyBeenPlayed) { return; } var homeTeamPoints = Convert.ToInt32(result.Result.Split('-')[0].Trim()); var abroadTeamPoints = Convert.ToInt32(result.Result.Split('-')[1].Trim()); var day = await _dayRepository.GetDayByOrderAsync(result.Day); if (day == null) { day = new Day(result.Day); await _dayRepository.AddDayAsync(day); } var homeTeam = result.VersusIndicator == "vs" ? thisTeam : versusTeam; var abroadTeam = result.VersusIndicator == "vs" ? versusTeam : thisTeam; var game = new Game(homeTeam, abroadTeam, homeTeamPoints, abroadTeamPoints); var isGameAlreadySaved = day.Games.Any(g => g.HomeTeamId == thisTeam.Id && g.AbroadTeamId == versusTeam.Id); if (isGameAlreadySaved) { return; } day.AddGame(game); await _dayRepository.SaveChangesAsync(); } } }