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 })); }