Esempio n. 1
0
        public ActionResult Team(TeamModel model)
        {
            // Load scores
            using (SqlConnection con = new SqlConnection(_connectionString))
            {
                con.Open();
                try
                {
                    string password = null;
                    using (SqlCommand command = new SqlCommand("select id, secret_string, derby_id, name from sturgeonteams where id = @team_id", con))
                    {
                        command.Parameters.Add(new SqlParameter("team_id", model.TeamId));
                        var reader = command.ExecuteReader();
                        if (reader.HasRows)
                        {
                            while (reader.Read())
                            {
                                model.TeamId   = reader.GetInt32(0);
                                password       = reader.GetString(1);
                                model.DerbyId  = reader.GetInt32(2);
                                model.TeamName = reader.GetString(3);
                            }
                        }
                        reader.Close();
                    }

                    if (model.Password != password)
                    {
                        model.ErrorMessage = "Invalid password";
                        return(View(model));
                    }

                    bool isOpen = false;
                    using (SqlCommand command = new SqlCommand("select is_open from sturgeonderbies where id = @id", con))
                    {
                        command.Parameters.Add(new SqlParameter("id", model.DerbyId));
                        var reader = command.ExecuteReader();
                        if (reader.HasRows)
                        {
                            while (reader.Read())
                            {
                                isOpen = reader.GetBoolean(0);
                            }
                        }
                        reader.Close();
                    }

                    if (!isOpen)
                    {
                        model.ErrorMessage = "This derby is closed";
                        return(View(model));
                    }


                    using (SqlCommand command = new SqlCommand(@"if exists(select * from sturgeonscores where team_Id = @teamId and slot = @slot)
begin

    update sturgeonscores set score = @score where team_Id = @teamId and slot = @slot
end
else
begin

    insert sturgeonscores(team_id, slot, score) values(@teamId, @slot, @score)
end", con))
                    {
                        var parameterTeamId = command.Parameters.Add(new SqlParameter("teamId", model.TeamId));
                        var parameterSlot   = command.Parameters.Add(new SqlParameter("slot", model.TeamId));
                        var parameterScore  = command.Parameters.Add(new SqlParameter("score", model.TeamId));

                        // Update scores
                        for (int i = 1; i < 51; i++)
                        {
                            parameterSlot.Value  = i;
                            parameterScore.Value = model.GetScore(i);
                            command.ExecuteNonQuery();
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            return(RedirectToAction("Index", "Sturgeon", new { id = model.DerbyId }));
        }