//method: SaveButton_Click //description: SaveButton click event //params: object sender - sender // EventArgs e - event args //returns: void private void SaveButton_Click(object sender, EventArgs e) { SaveButton.Enabled = false; EditButton.Enabled = true; if (questionNum != 10) { NextButton.Enabled = true; } if (questionNum != 1) { PreviousButton.Enabled = true; } QuestionTextbox.Enabled = false; TextboxA.Enabled = false; TextboxB.Enabled = false; TextboxC.Enabled = false; TextboxD.Enabled = false; AnswerGroupbox.Enabled = false; //Get A answerA = new Answer(); answerA.answerText = TextboxA.Text; answerA.isCorrect = RadioButtonA.Checked; //Get B answerB = new Answer(); answerB.answerText = TextboxB.Text; answerB.isCorrect = RadioButtonB.Checked; //Get C answerC = new Answer(); answerC.answerText = TextboxC.Text; answerC.isCorrect = RadioButtonC.Checked; //Get D answerD = new Answer(); answerD.answerText = TextboxD.Text; answerD.isCorrect = RadioButtonD.Checked; //create question question = new Question(); question.answers = new List<Answer>(); question.questionNumber = questionNum; question.questionText = QuestionTextbox.Text; question.answers.Add(answerA); question.answers.Add(answerB); question.answers.Add(answerC); question.answers.Add(answerD); oldQuestion = new Question(); oldQuestion.answers = new List<Answer>(); oldQuestion.answers.Add(oldAnswerA); oldQuestion.answers.Add(oldAnswerB); oldQuestion.answers.Add(oldAnswerC); oldQuestion.answers.Add(oldAnswerD); connection.AddOrModifyQuestion(question, oldQuestion); }
//method: GetQuestion //description: retrieves question information from the database //params: int questionNumber - questionNumber //returns: void public void GetQuestion(int questionNumber) { if(stopped) return; Task.Factory.StartNew(() => { try { lock (socketLock) { //tell service to get questions writer.WriteLine("GET_QUESTION"); writer.WriteLine("" + questionNumber); writer.Flush(); Question question = new Question(); question.questionNumber = questionNumber; //get question string input = reader.ReadLine(); if (input.StartsWith("QUESTION:")) { question.questionText = input.Substring("QUESTION:".Length); //get question answers question.answers = new List<Answer>(); while (reader.PeekLine().StartsWith("ANSWER:")) { Answer a = new Answer(); a.answerText = reader.ReadLine().Substring("ANSWER:".Length); if (reader.PeekLine().StartsWith("ISCORRECT:")){ a.isCorrect = Convert.ToBoolean(reader.ReadLine().Substring("ISCORRECT:".Length)); question.answers.Add(a); } } string writerDump = reader.ReadLine(); //dump for "DONE" string from server owner.Invoke((MethodInvoker)( () => { QuestionReceived(this, question); } )); } } } catch(Exception) { stopped = true; socket.Close(); owner.Invoke((MethodInvoker)(() => { ConnectionLost(this, new EventArgs()); })); } }); }
//method: EditButton_Click //description: EditButton click event //params: object sender - sender // EventArgs e - event args //returns: void private void EditButton_Click(object sender, EventArgs e) { SaveButton.Enabled = true; EditButton.Enabled = false; NextButton.Enabled = false; PreviousButton.Enabled = false; oldAnswerA = new Answer(); oldAnswerA.answerText = TextboxA.Text; oldAnswerB = new Answer(); oldAnswerB.answerText = TextboxB.Text; oldAnswerC = new Answer(); oldAnswerC.answerText = TextboxC.Text; oldAnswerD = new Answer(); oldAnswerD.answerText = TextboxD.Text; QuestionTextbox.Enabled = true; TextboxA.Enabled = true; TextboxB.Enabled = true; TextboxC.Enabled = true; TextboxD.Enabled = true; AnswerGroupbox.Enabled = true; }