public FrmQuizz(QuizzMode mode, List<QuestionResult> questionResult, bool mouseRecognizer, CultureInfo culture) { InitializeComponent(); _mouseRecognizer = mouseRecognizer; _questionResult = questionResult; _unresolved = new Queue<QuestionResult>(); _mode = mode; if (mode == QuizzMode.Exam) btnSkip.Visible = false; else btnSkip.Visible = true; if (_mouseRecognizer) { _hanziRecognizer = new WritingRecognition(picDraw, culture); _hanziRecognizer.HanziRecognized += _hanziRecognizer_HanziRecognized; } else tabExam.TabPages.RemoveAt(1); ShowNext(); }
public override void ReceiveAllData(List<Content> content) { DialogResult finalResult = DialogResult.Abort; if (content.Count < 1) InvokeStoppedEvent(null); _frmStart = new FrmStart(); _frmStart.lblQuestionNumber.Text = content.Count.ToString(); _frmStart.numMaxQuestions.Maximum = content.Count; bool questionChoosen = false; foreach (ContentElement element in content[0].Elements) { if (element.Type == ContentType.Text || element.Type == ContentType.Image) { _frmStart.cboQuestionConcern.Items.Add(element.Name); if (element.Type == ContentType.Text) _frmStart.cboAnswerConcern.Items.Add(element.Name); if (!questionChoosen) { _frmStart.cboQuestionConcern.Text = element.Name; questionChoosen = true; } if (element.Type == ContentType.Text) _frmStart.cboAnswerConcern.Text = element.Name; } } if (_frmStart.ShowDialog() == DialogResult.OK) { List<QuestionResult> questionResult = new List<QuestionResult>(); if (_frmStart.chkMaxQuestions.Checked) content.RemoveRange((int)_frmStart.numMaxQuestions.Value, content.Count - (int)_frmStart.numMaxQuestions.Value); int num = 0; foreach (Content current in content) { QuestionResult newQuestion = new QuestionResult(); newQuestion.QuestionNumber = ++num; newQuestion.ContentIndex = current.Index; newQuestion.AnswerContentType = GetElementFromName(current.Elements, _frmStart.cboAnswerConcern.SelectedItem).Type; newQuestion.GoodAnswer = GetElementFromName(current.Elements, _frmStart.cboAnswerConcern.SelectedItem).Data; newQuestion.QuestionContentType = GetElementFromName(current.Elements, _frmStart.cboQuestionConcern.SelectedItem).Type; newQuestion.Question = GetElementFromName(current.Elements, _frmStart.cboQuestionConcern.SelectedItem).Data; newQuestion.Settings = GetElementFromName(current.Elements, _frmStart.cboQuestionConcern.SelectedItem).Settings; questionResult.Add(newQuestion); } if (_frmStart.chkWritingRecognition.Checked) { QuizzSettings.Default.WritingRecognitionLanguage = (CultureInfo)_frmStart.cboWritingLanguage.SelectedItem; QuizzSettings.Default.WritingRecognition = true; } else QuizzSettings.Default.WritingRecognition = false; if (_frmStart.rdoIntensive.Checked) _mode = QuizzMode.Intensive; else _mode = QuizzMode.Exam; _frmTwik = new FrmQuizz(_mode, questionResult, _frmStart.chkWritingRecognition.Checked, (CultureInfo)_frmStart.cboWritingLanguage.SelectedItem); _frmStart = null; if (_frmTwik.ShowDialog() == DialogResult.OK) { _frmTwik = null; _frmResult = new FrmResult(_mode, _core, questionResult); finalResult = _frmResult.ShowDialog(); _frmResult = null; } } InvokeStoppedEvent(null); if (finalResult == DialogResult.Retry) ReceiveAllData(content); else if (finalResult == DialogResult.Yes) InvokeWaitForAllDataEvent(null); _core.WakeUp(); }
public FrmResult(QuizzMode mode, ICore core, IEnumerable<QuestionResult> questionResult) { _core = core; _mode = mode; InitializeComponent(); foreach (QuestionResult current in questionResult) { if (dataGridBadAnswers.Columns.Count == 0) { // Creation the QUESTION column if (current.QuestionContentType == ContentType.Text) dataGridBadAnswers.Columns.Add("Question", Resources.Question); else if (current.QuestionContentType == ContentType.Image) { DataGridViewImageColumn iconColumn = new DataGridViewImageColumn(); iconColumn.Name = "Question"; iconColumn.ImageLayout = DataGridViewImageCellLayout.Zoom; iconColumn.HeaderText = Resources.Question; dataGridBadAnswers.Columns.Add(iconColumn); } else throw new NotImplementedException(); // Creation of the ANSWER column if (current.AnswerContentType == ContentType.Text || current.QuestionContentType == ContentType.Image) { dataGridBadAnswers.Columns.Add("Answer", Resources.Answer); dataGridBadAnswers.Columns.Add("CorrectAnswer", Resources.CorrectAnswer); if (mode == QuizzMode.Intensive) dataGridBadAnswers.Columns.Add("Attempt", Resources.Attempt); } else throw new NotImplementedException(); } if (current.Result == QuizzResult.Correct && current.AttemptCount < 2) _goodAnswers.Add(current); else _badAnswers.Add(current); if (_mode == QuizzMode.Intensive) { int index = dataGridBadAnswers.Rows.Add(new object[] { current.Question, current.UserAnswer, current.GoodAnswer, current.AttemptCount }); if (current.Result == QuizzResult.Correct && current.AttemptCount < 2) dataGridBadAnswers.Rows[index].Cells[3].Style.BackColor = System.Drawing.Color.LightGreen; else if (current.Result == QuizzResult.Skipped) dataGridBadAnswers.Rows[index].Cells[3].Style.BackColor = System.Drawing.Color.LightPink; else dataGridBadAnswers.Rows[index].Cells[3].Style.BackColor = System.Drawing.Color.NavajoWhite; } else if (current.Result != QuizzResult.Correct) { if (current.QuestionContentType == ContentType.Text) dataGridBadAnswers.Rows.Add(new object[] { current.Question, current.UserAnswer, current.GoodAnswer }); else if (current.QuestionContentType == ContentType.Image) { Bitmap bmp = new Bitmap(FileManager.ByteArrayToImage((byte[])current.Question)); int row = dataGridBadAnswers.Rows.Add(new object[] { bmp, current.UserAnswer, current.GoodAnswer }); dataGridBadAnswers.Rows[row].Height = bmp.Height > 80 ? 80 : bmp.Height; } } } dataGridBadAnswers.Columns[0].Width = 145; dataGridBadAnswers.Columns[1].Width = 145; dataGridBadAnswers.Columns[2].Width = 145; if (_mode == QuizzMode.Intensive) dataGridBadAnswers.Columns[3].Width = 45; lblBadAnswers.Text = _badAnswers.Count.ToString(); lblGoodAnswers.Text = _goodAnswers.Count.ToString(); if (_core.Playlists.Length == 0) { toolBadAddToPlaylist.Enabled = false; toolGoodAddToPlaylist.Enabled = false; toolBadRemoveFromPlaylist.Enabled = false; toolGoodRemoveFromPlaylist.Enabled = false; } else for (int c = 0; c < _core.Playlists.Length; c++) AddPlaylistToUI(_core.Playlists[c]); }