コード例 #1
0
        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();
                        }
                    }
                }
            }
        }