/// <summary> /// Сохраняет изменения по ответу /// </summary> /// <param name="answer">ссылка на ответ</param> public void SaveOrUpdate(SQLiteConnection conn, UserAnswer answer) { if (answer.ID == 0) { int ID = indexService.NextID(TABLE_NAME); using (SQLiteCommand insertSQL = new SQLiteCommand("insert into USER_ANSWER (ID, AnswerTitle, User_Answer, RightAnswer, Question_ID) values (@ID, @AnswerTitle, @User_Answer, @RightAnswer, @Question_ID)", conn)) { insertSQL.Parameters.AddWithValue("@AnswerTitle", answer.AnswerTitle); insertSQL.Parameters.AddWithValue("@User_Answer", answer.User_Answer); insertSQL.Parameters.AddWithValue("@RightAnswer", answer.RightAnswer); insertSQL.Parameters.AddWithValue("@Question_ID", answer.Question.ID); insertSQL.Parameters.AddWithValue("@ID", ID); insertSQL.ExecuteNonQuery(); answer.ID = ID; } } else { using (SQLiteCommand insertSQL = new SQLiteCommand("UPDATE USER_ANSWER SET AnswerTitle = @AnswerTitle, RightAnswer = @RightAnswer, User_Answer = @User_Answer, Question_ID = @Question_ID WHERE ID = @ID", conn)) { insertSQL.Parameters.AddWithValue("@AnswerTitle", answer.AnswerTitle); insertSQL.Parameters.AddWithValue("@User_Answer", answer.User_Answer); insertSQL.Parameters.AddWithValue("@RightAnswer", answer.RightAnswer); insertSQL.Parameters.AddWithValue("@Question_ID", answer.Question.ID); insertSQL.Parameters.AddWithValue("@ID", answer.ID); insertSQL.ExecuteNonQuery(); } } }
public void AddAnswer(UserAnswer answer) { if (UserAnswers == null) { UserAnswers = new List<UserAnswer>(); } answer.Question = this; UserAnswers.Add(answer); }
/// <summary> /// Преобразует в ответ /// </summary> /// <param name="reader">ответ от запроса</param> /// <returns>ответ</returns> private UserAnswer ToAnswer(SQLiteDataReader reader) { UserAnswer answer = new UserAnswer(); answer.ID = Convert.ToInt32(reader["ID"]); answer.AnswerTitle = Convert.ToString(reader["AnswerTitle"]); answer.User_Answer = Convert.ToBoolean(reader["User_Answer"]); answer.RightAnswer = Convert.ToBoolean(reader["RightAnswer"]); answer.Question = new QuestionResult(Convert.ToInt32(reader["Question_ID"])); return answer; }
/// <summary> /// Проверка на правильный ответ /// </summary> /// <param name="answers">список ответветов</param> public void Test(params bool[] answers) { if (answers.Length != current.Answers.Count) { throw new Exception("Количество ответов не соответствует с тестовыми"); } QuestionResult questionResult = new QuestionResult(current.Value); for (int i = 0; i < current.Answers.Count; i++) { UserAnswer answer = new UserAnswer(current.Answers[i].Value, answers[i], current.Answers[i].Right); questionResult.AddAnswer(answer); } userResult.AddQuestion(questionResult); IDX++; }