private void NavigateExam(NavOption option) { lbl_explanation.Visible = false; if (option == NavOption.Begin) { if (_settings.Questions.Count > 0) { _currentQuestionIndex = 0; PrintQuestionToScreen(); } if (_settings.Questions.Count > 1) { btn_next.Enabled = true; } } else if (option == NavOption.Next) { //Save current answer _userAnswers[_currentQuestionIndex] = SelectedAnswer(); RemoveOptions(); _currentQuestionIndex++; PrintQuestionToScreen(); btn_previous.Enabled = true; if (_currentQuestionIndex == _settings.Questions.Count - 1) { btn_next.Enabled = false; } } else if (option == NavOption.Previous) { //Save current answer _userAnswers[_currentQuestionIndex] = SelectedAnswer(); RemoveOptions(); _currentQuestionIndex--; PrintQuestionToScreen(); btn_next.Enabled = true; if (_currentQuestionIndex == 0) { btn_previous.Enabled = false; } } else if (option == NavOption.End) { //Save current answer _userAnswers[_currentQuestionIndex] = SelectedAnswer(); for (int i = 0; i < _userAnswers.Length; i++) { if (_userAnswers[i] == null) { _userAnswers[i] = '\0'; } } _settings.ElapsedTime = TimeSpan.FromSeconds(_exam.Properties.TimeLimit * 60 - _timeLeft); var numOfCorrectAnswers = 0; for (var i = 0; i < _settings.Questions.Count; i++) { if (_userAnswers[i].GetType().IsArray) { if (((char[])_userAnswers[i]).SequenceEqual(_settings.Questions[i].Answers)) { numOfCorrectAnswers++; } } else if ((char)_userAnswers[i] == _settings.Questions[i].Answer) { numOfCorrectAnswers++; } } _settings.NumberOfCorrectAnswers = numOfCorrectAnswers; foreach (var section in _settings.Sections) { var numOfQuestions = 0; var numOfCorrect = 0; for (var i = 0; i < _settings.Questions.Count; i++) { if (section.Questions.Contains(_settings.Questions[i])) { numOfQuestions++; if (_userAnswers[i].GetType().IsArray) { if (((char[])_userAnswers[i]).SequenceEqual(_settings.Questions[i].Answers)) { numOfCorrect++; } } else if ((char)_userAnswers[i] == _settings.Questions[i].Answer) { numOfCorrect++; } } } _settings.ResultSpread.Add(new Tuple <string, int, int>(section.Title, numOfQuestions, numOfCorrect)); } var ss = new ScoreSheetUi(_settings, _exam); Hide(); ss.ShowDialog(); Close(); } }
private void NavigateExam(NavOption option) { lbl_explanation.Visible = false; // if (option == NavOption.Begin) { if (settings.Questions.Count > 0) { currentQuestionIndex = 0; PrintQuestionToScreen(); } // if (settings.Questions.Count > 1) { btn_next.Enabled = true; } } else if (option == NavOption.Next) { //Save current answer userAnswers[currentQuestionIndex] = SelectedAnswer(); // RemoveOptions(); // currentQuestionIndex++; PrintQuestionToScreen(); // btn_previous.Enabled = true; // if (currentQuestionIndex == settings.Questions.Count - 1) { btn_next.Enabled = false; } } else if (option == NavOption.Previous) { //Save current answer userAnswers[currentQuestionIndex] = SelectedAnswer(); // RemoveOptions(); // currentQuestionIndex--; PrintQuestionToScreen(); // btn_next.Enabled = true; // if (currentQuestionIndex == 0) { btn_previous.Enabled = false; } } else if (option == NavOption.End) { //Save current answer userAnswers[currentQuestionIndex] = SelectedAnswer(); // settings.ElapsedTime = TimeSpan.FromSeconds(exam.Properties.TimeLimit * 60 - timeLeft); // int numOfCorrectAnswers = 0; for (int i = 0; i < settings.Questions.Count; i++) { if (userAnswers[i] == settings.Questions[i].Answer) { numOfCorrectAnswers++; } } settings.NumberOfCorrectAnswers = numOfCorrectAnswers; // foreach (var section in settings.Sections) { int numOfQuestions = 0; int numOfCorrect = 0; for (int i = 0; i < settings.Questions.Count; i++) { if (section.Questions.Contains(settings.Questions[i])) { numOfQuestions++; if (userAnswers[i] == settings.Questions[i].Answer) { numOfCorrect++; } } } settings.ResultSpread.Add(new Tuple <string, int, int>(section.Title, numOfQuestions, numOfCorrect)); } // Score_Sheet ss = new Score_Sheet(settings, exam); this.Hide(); ss.ShowDialog(); this.Close(); } }