private void btnCalculate_Click(object sender, EventArgs e) { dbh.EditRow("TblUsers", "Score", "0"); DataTable playedMatches = dbh.FillDT("SELECT * FROM TblGames WHERE isPlayed = 1"); if (playedMatches.Rows.Count < 1) { MessageHandler.ShowMessage("Please upload a csv which contains played matches"); } else { foreach (DataRow playedMatch in playedMatches.Rows) { int gameId = (int)playedMatch["Game_id"]; DataTable predictions = dbh.FillDT(string.Format("SELECT * FROM TblPredictions WHERE Game_id = {0}", gameId)); int homeTeam = (int)playedMatch["HomeTeam"]; int awayTeam = (int)playedMatch["AwayTeam"]; int scoreHomeTeam = (int)playedMatch["HomeTeamScore"]; int scoreAwayTeam = (int)playedMatch["AwayTeamScore"]; int?winningTeam = null; int tie = 0; if (scoreHomeTeam > scoreAwayTeam) { winningTeam = homeTeam; } else if (scoreAwayTeam > scoreHomeTeam) { winningTeam = awayTeam; } else if (scoreHomeTeam == scoreAwayTeam) { tie = 1; } foreach (DataRow prediction in predictions.Rows) { int score = 0; int predictedHomeTeam = (int)prediction["HomeTeam"]; int predictedAwayTeam = (int)prediction["AwayTeam"]; int predictedHomeTeamScore = (int)prediction["PredictedHomeScore"]; int predictedAwayTeamScore = (int)prediction["PredictedAwayScore"]; int?predictedWinningTeam = null; if (predictedHomeTeamScore > predictedAwayTeamScore) { predictedWinningTeam = predictedHomeTeam; } else if (predictedAwayTeamScore > predictedHomeTeamScore) { predictedWinningTeam = predictedAwayTeam; } if (predictedHomeTeamScore == scoreHomeTeam && predictedAwayTeamScore == scoreAwayTeam) { score = 3; } else if (winningTeam != null && tie == 0 && predictedWinningTeam != null) { if (winningTeam == predictedWinningTeam) { score = 1; } } MessageHandler.ShowMessage(score.ToString()); using (SqlCommand cmd = new SqlCommand("UPDATE TblUsers SET Score = Score + @Score WHERE Id = @Id", dbh.GetCon())) { cmd.Parameters.AddWithValue("Score", score); cmd.Parameters.AddWithValue("Id", prediction["User_id"]); dbh.TestConnection(); dbh.OpenConnectionToDB(); cmd.ExecuteNonQuery(); dbh.CloseConnectionToDB(); } } } } }