public void NhlTableGeneration(Match match) { match.AwayTeam = GetTeamById(match.AwayTeamId); match.HomeTeam = GetTeamById(match.HomeTeamId); match.SeasonId = GetCurrentSeason().SeasonId; var sqlQuery = $"Insert into Matches (SeasonId, HomeTeamId, AwayTeamId, HomeTeamScore, AwayTeamScore, Result, Date) Values ({match.SeasonId}, {match.HomeTeamId}, {match.AwayTeamId}, {match.HomeTeamScore}, {match.AwayTeamScore}, {(int)match.Result}, '{match.Date}')"; var command = DbQuery.CreateCommand(sqlQuery, ConnectionString); DbQuery.ExecuteCommand(command); Team winningTeam; Team losingTeam; int winnersGoals; int losersGoals; if (match.AwayTeamScore > match.HomeTeamScore) { winningTeam = match.AwayTeam; winningTeam.MatchesAway.Add(match); winnersGoals = match.AwayTeamScore; losingTeam = match.HomeTeam; losingTeam.MatchesHome.Add(match); losersGoals = match.HomeTeamScore; } else { winningTeam = match.HomeTeam; winningTeam.MatchesHome.Add(match); winnersGoals = match.HomeTeamScore; losingTeam = match.AwayTeam; losingTeam.MatchesAway.Add(match); losersGoals = match.AwayTeamScore; } var currentSeason = GetCurrentSeason(); //if (currentSeason.Standings.Count == 0) //{ // CreateStandings(); //} var winStat = winningTeam.Standings.SingleOrDefault(x => x.Season.SeasonId == currentSeason.SeasonId); var loseStat = losingTeam.Standings.SingleOrDefault(x => x.Season.SeasonId == currentSeason.SeasonId); //var winStat = (from s in GetStandingsByTeamId(winningTeam.TeamId) where s.Season.IsCurrent == true select s).FirstOrDefault(); //var loseStat = (from s in GetStandingsByTeamId(losingTeam.TeamId) where s.Season.IsCurrent == true select s).FirstOrDefault(); winStat.Team = winningTeam; loseStat.Team = losingTeam; winStat.GamesPlayed += 1; loseStat.GamesPlayed += 1; switch (match.Result) { case TypeOfResult.FT: FulltimeCounter(match, winStat, loseStat, winnersGoals, losersGoals); break; case TypeOfResult.OT: OvertimeCounter(match, winStat, loseStat, winnersGoals, losersGoals); break; case TypeOfResult.SO: ShootoutCounter(match, winStat, loseStat, winnersGoals, losersGoals); break; } command.CommandText = StandingsQuery(winStat); DbQuery.ExecuteCommand(command); command.CommandText = StandingsQuery(loseStat); DbQuery.ExecuteCommand(command); }