Beispiel #1
0
        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();
        }
Beispiel #2
0
        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();
        }
Beispiel #3
0
        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]);
        }