public bool mdl_question_usages_Them(DataTable ds_mdl_question_attempts, DataTable ds_mdl_quiz_attempts) { DbAccess db = new DbAccess(); db.BeginTransaction(); try { db.CreateNewSqlCommand(); db.AddParameter("@contextid", contextid); db.AddParameter("@component", component); db.AddParameter("@preferredbehaviour", preferredbehaviour); int questionusage_id = db.ExecuteScalarWithTransaction("mdl_question_usages_Them"); //------------------ ds_questionattempt_id.Clear(); ds_questionattempt_id.Columns.Clear(); ds_questionattempt_id.Columns.Add("questionusage_id"); //------------------ db.CreateNewSqlCommand(); db.AddParameter("@quiz", ds_mdl_quiz_attempts.Rows[0][1].ToString()); db.AddParameter("@userid", ds_mdl_quiz_attempts.Rows[0][2].ToString()); db.AddParameter("@attempt", ds_mdl_quiz_attempts.Rows[0][3].ToString()); db.AddParameter("@uniqueid", questionusage_id.ToString()); db.AddParameter("@layout", ds_mdl_quiz_attempts.Rows[0][5].ToString()); db.AddParameter("@currentpage", ds_mdl_quiz_attempts.Rows[0][6].ToString()); db.AddParameter("@preview", ds_mdl_quiz_attempts.Rows[0][7].ToString()); db.AddParameter("@state", ds_mdl_quiz_attempts.Rows[0][8].ToString()); db.AddParameter("@timestart", ds_mdl_quiz_attempts.Rows[0][9].ToString()); db.AddParameter("@timefinish", ds_mdl_quiz_attempts.Rows[0][10].ToString()); db.AddParameter("@timemodified", ds_mdl_quiz_attempts.Rows[0][11].ToString()); db.AddParameter("@timemodifiedoffline", ds_mdl_quiz_attempts.Rows[0][12].ToString()); db.AddParameter("@timecheckstate", ds_mdl_quiz_attempts.Rows[0][13].ToString()); db.AddParameter("@sumgrades", ds_mdl_quiz_attempts.Rows[0][14].ToString()); db.ExecuteNonQueryWithTransaction("mdl_quiz_attempts_Them"); //--------- for (int i = 0; i < ds_mdl_question_attempts.Rows.Count; i++) { db.CreateNewSqlCommand(); db.AddParameter("@questionusageid", questionusage_id); db.AddParameter("@slot", ds_mdl_question_attempts.Rows[i][2].ToString()); db.AddParameter("@behaviour", ds_mdl_question_attempts.Rows[i][3].ToString()); db.AddParameter("@questionid", ds_mdl_question_attempts.Rows[i][4].ToString()); db.AddParameter("@variant", ds_mdl_question_attempts.Rows[i][5].ToString()); db.AddParameter("@maxmark", ds_mdl_question_attempts.Rows[i][6].ToString()); db.AddParameter("@minfraction", ds_mdl_question_attempts.Rows[i][7].ToString()); db.AddParameter("@maxfraction", ds_mdl_question_attempts.Rows[i][8].ToString()); db.AddParameter("@flagged", bool.Parse(ds_mdl_question_attempts.Rows[i][9].ToString())); db.AddParameter("@questionsummary", ds_mdl_question_attempts.Rows[i][10].ToString()); db.AddParameter("@rightanswer", ds_mdl_question_attempts.Rows[i][11].ToString()); db.AddParameter("@responsesummary", ds_mdl_question_attempts.Rows[i][12].ToString()); db.AddParameter("@timemodified", ds_mdl_question_attempts.Rows[i][13].ToString()); questionattempt_id = db.ExecuteScalarWithTransaction("mdl_question_attempts_Them"); //--------------todo ds_mdl_question_attempt_steps = mdl_question_attempt_steps_DS(ds_mdl_question_attempts.Rows[i][0].ToString(), 0.ToString()); db.CreateNewSqlCommand(); db.AddParameter("@questionattemptid", questionattempt_id.ToString()); ds_questionattempt_id.Rows.Add(questionattempt_id.ToString()); db.AddParameter("@sequencenumber", ds_mdl_question_attempt_steps.Rows[0][2].ToString()); db.AddParameter("@state", ds_mdl_question_attempt_steps.Rows[0][3].ToString()); if ((ds_mdl_question_attempt_steps.Rows[0][4].ToString()) == "") { db.AddParameter("@fraction", DBNull.Value); } else { db.AddParameter("@fraction", (ds_mdl_question_attempt_steps.Rows[0][4].ToString())); } db.AddParameter("@timecreated", ds_mdl_question_attempt_steps.Rows[0][5].ToString()); db.AddParameter("@userid", ds_mdl_question_attempt_steps.Rows[0][6].ToString()); attemptstep_id = db.ExecuteScalarWithTransaction("mdl_question_attempt_steps_Them"); ds_mdl_question_attempt_step_data = mdl_question_attempt_step_data_DS(ds_mdl_question_attempt_steps.Rows[0][0].ToString());//_order db.CreateNewSqlCommand(); db.AddParameter("@attemptstepid", attemptstep_id.ToString()); db.AddParameter("@name", ds_mdl_question_attempt_step_data.Rows[0][2].ToString()); db.AddParameter("@value", ds_mdl_question_attempt_step_data.Rows[0][3].ToString()); db.ExecuteNonQueryWithTransaction("mdl_question_attempt_step_data_Them"); } for (int i = 0; i < ds_mdl_question_attempts.Rows.Count; i++) { //--------------complete ds_mdl_question_attempt_steps = mdl_question_attempt_steps_DS(ds_mdl_question_attempts.Rows[i][0].ToString(), 1.ToString());//complete db.CreateNewSqlCommand(); db.AddParameter("@questionattemptid", ds_questionattempt_id.Rows[i][0].ToString()); db.AddParameter("@sequencenumber", ds_mdl_question_attempt_steps.Rows[0][2].ToString()); db.AddParameter("@state", ds_mdl_question_attempt_steps.Rows[0][3].ToString()); if ((ds_mdl_question_attempt_steps.Rows[0][4].ToString()) == "") { db.AddParameter("@fraction", DBNull.Value); } else { db.AddParameter("@fraction", (ds_mdl_question_attempt_steps.Rows[0][4].ToString())); } db.AddParameter("@timecreated", ds_mdl_question_attempt_steps.Rows[0][5].ToString()); db.AddParameter("@userid", ds_mdl_question_attempt_steps.Rows[0][6].ToString()); attemptstep_id = db.ExecuteScalarWithTransaction("mdl_question_attempt_steps_Them"); ds_mdl_question_attempt_step_data = mdl_question_attempt_step_data_DS(ds_mdl_question_attempt_steps.Rows[0][0].ToString());//_order db.CreateNewSqlCommand(); db.AddParameter("@attemptstepid", attemptstep_id.ToString()); db.AddParameter("@name", ds_mdl_question_attempt_step_data.Rows[0][2].ToString()); db.AddParameter("@value", ds_mdl_question_attempt_step_data.Rows[0][3].ToString()); db.ExecuteNonQueryWithTransaction("mdl_question_attempt_step_data_Them"); } for (int i = 0; i < ds_mdl_question_attempts.Rows.Count; i++) { //--------------grade ds_mdl_question_attempt_steps = mdl_question_attempt_steps_DS(ds_mdl_question_attempts.Rows[i][0].ToString(), 2.ToString()); if (ds_mdl_question_attempt_steps.Rows.Count > 0) { db.CreateNewSqlCommand(); db.AddParameter("@questionattemptid", ds_questionattempt_id.Rows[i][0].ToString()); db.AddParameter("@sequencenumber", ds_mdl_question_attempt_steps.Rows[0][2].ToString()); db.AddParameter("@state", ds_mdl_question_attempt_steps.Rows[0][3].ToString()); if ((ds_mdl_question_attempt_steps.Rows[0][4].ToString()) == "") { db.AddParameter("@fraction", DBNull.Value); } else { db.AddParameter("@fraction", (ds_mdl_question_attempt_steps.Rows[0][4].ToString())); } db.AddParameter("@timecreated", ds_mdl_question_attempt_steps.Rows[0][5].ToString()); db.AddParameter("@userid", ds_mdl_question_attempt_steps.Rows[0][6].ToString()); attemptstep_id = db.ExecuteScalarWithTransaction("mdl_question_attempt_steps_Them"); ds_mdl_question_attempt_step_data = mdl_question_attempt_step_data_DS(ds_mdl_question_attempt_steps.Rows[0][0].ToString());//_order db.CreateNewSqlCommand(); db.AddParameter("@attemptstepid", attemptstep_id.ToString()); db.AddParameter("@name", ds_mdl_question_attempt_step_data.Rows[0][2].ToString()); db.AddParameter("@value", ds_mdl_question_attempt_step_data.Rows[0][3].ToString()); db.ExecuteNonQueryWithTransaction("mdl_question_attempt_step_data_Them"); } } db.CommitTransaction(); return(true); } catch { db.RollbackTransaction(); return(false); } }