Esempio n. 1
0
 private void gradeSection(int sectionCode, Bitmap stretched, Sectionizer testSections, ExamSpecifics exam, double avRadius)
 {
     if (sectionCode == 0)
     {
         LineScannerSC    prelines = new LineScannerSC(testSections.studentCondition, avRadius);
         StudentCondition section1 = new StudentCondition(prelines.lineX, prelines.lineY, stretched, exam, avRadius);
         section1.scoreSection(stretched); // should be in a worker thread
         scannedScores[sectionCode] = (section1);
     }
     if (sectionCode == 1)
     {
         LineScannerMC   prelines = new LineScannerMC(testSections.multipleChoice, avRadius);
         Multiple_Choice section1 = new Multiple_Choice(prelines.lineX, prelines.lineY, stretched, exam, avRadius);
         section1.scoreSection(stretched); // should be in a worker thread
         scannedScores[sectionCode] = (section1);
     }
     else if (sectionCode == 2)
     {
         LineScannerPairing prelines = new LineScannerPairing(testSections.pairing, avRadius);
         Pairing            section2 = new Pairing(prelines.lineX, prelines.lineY, stretched, exam, avRadius);
         section2.scoreSection(stretched); // should be in a worker thread
         scannedScores[sectionCode] = (section2);
     }
     else if (sectionCode == 3)
     {
         LineScannerTF prelines = new LineScannerTF(testSections.trueFalse, avRadius);
         True_False    section3 = new True_False(prelines.lineX, prelines.lineY, stretched, exam, avRadius);
         section3.scoreSection(stretched); // should be in a worker thread
         scannedScores[sectionCode] = (section3);
     }
     else if (sectionCode == 4)
     {
         LineScannerCompletion prelines = new LineScannerCompletion(testSections.completion, avRadius);
         Completion            section4 = new Completion(prelines.lineX, prelines.lineY, stretched, exam, avRadius);
         section4.scoreSection(stretched); // should be in a worker thread
         scannedScores[sectionCode] = (section4);
     }
     else if (sectionCode == 5)
     {
         LineScannerSubjective prelines = new LineScannerSubjective(testSections.subjective, avRadius);
         Subjective            section4 = new Subjective(prelines.lineX, prelines.lineY, stretched, exam, avRadius);
         section4.scoreSection(stretched); // should be in a worker thread
         scannedScores[sectionCode] = (section4);
     }
 }
Esempio n. 2
0
        private void UpdateView(Question nextQues, bool isShownAnswerkey)
        {
            //throw new NotImplementedException();

            if (_view is V_MC_Vong1)
            {
                V_MC_Vong1 myView = _view as V_MC_Vong1;
                if (nextQues == null)// het cau hoi vong nay
                {
                    return;

                    ////
                    ///
                }
                if (nextQues is Compound)
                {
                    Compound ques = nextQues as Compound;
                    myView.QuestionText = ques.QuestionContent + "\nA." + ques.ChoiceA + "\nB." + ques.ChoiceB + "\nC." + ques.ChoiceC + "\nD." + ques.ChoiceD;
                }
                else if (nextQues is Multiple_Choice)
                {
                    Multiple_Choice ques = nextQues as Multiple_Choice;
                    myView.QuestionText = ques.QuestionContent + "\nA." + ques.ChoiceA + "\nB." + ques.ChoiceB + "\nC." + ques.ChoiceC + "\nD." + ques.ChoiceD;
                }
                else if (nextQues is Fill_In)
                {
                    Fill_In ques = nextQues as Fill_In;
                    myView.QuestionText = ques.QuestionContent.Replace("NNN", "...");
                }
                else
                {
                    myView.QuestionText = nextQues.QuestionContent;
                }

                myView.QuestionNumText = nextQues.STT;
                try
                {
                    myView.AnswerKey = nextQues.AnswerKey;
                }
                catch
                {
                }
            }
        }
        private void UpdateView(Question nextQues)
        {
            //throw new NotImplementedException();
            if (_view is V_IT_Vong1_Thi)
            {
                V_IT_Vong1_Thi myView = _view as V_IT_Vong1_Thi;
                if (nextQues == null)// het cau hoi vong nay -- dk khác có vấn đề đây
                {
                    try
                    {
                        (new BLL()).MakeTeamDone(_teamId);
                        Close();
                    }
                    catch
                    {
                    }
                    return;

                    ////
                    ///
                }
                if (nextQues is Compound)
                {
                    Compound ques = nextQues as Compound;
                    myView.QuestionText = ques.QuestionContent + "\nA." + ques.ChoiceA + "\nB." + ques.ChoiceB + "\nC." + ques.ChoiceC + "\nD." + ques.ChoiceD;
                }
                else if (nextQues is Multiple_Choice)
                {
                    Multiple_Choice ques = nextQues as Multiple_Choice;
                    myView.QuestionText = ques.QuestionContent + "\nA." + ques.ChoiceA + "\nB." + ques.ChoiceB + "\nC." + ques.ChoiceC + "\nD." + ques.ChoiceD;
                }
                else if (nextQues is Fill_In)
                {
                    Fill_In ques = nextQues as Fill_In;
                    myView.QuestionText = ques.QuestionContent.Replace("NNN", "...");
                }
                else
                {
                    myView.QuestionText = nextQues.QuestionContent;
                }
                myView.AnswerKey       = nextQues.AnswerKey;
                myView.QuestionNumText = nextQues.STT;
            }
        }
Esempio n. 4
0
        public DAL_Question(Question question)
        {
            if (question is Multiple_Choice)
            {
                Multiple_Choice myMC = (Multiple_Choice)question;
                Type = "mc";
                JsonQuestion json = JsonQuestion.getJsonQuestion(myMC.QuestionContent, myMC.ChoiceA, myMC.ChoiceB, myMC.ChoiceC, myMC.ChoiceD);
                QuestionContent = Newtonsoft.Json.JsonConvert.SerializeObject(json);
            }
            else if (question is Compound)
            {
                Compound myCP = (Compound)question;
                Type = "cp";
                JsonQuestion json = JsonQuestion.getJsonQuestion(myCP.QuestionContent, myCP.ChoiceA, myCP.ChoiceB, myCP.ChoiceC, myCP.ChoiceD);
                QuestionContent = Newtonsoft.Json.JsonConvert.SerializeObject(json);
            }
            else if (question is Fill_In)
            {
                Fill_In myFi = (Fill_In)question;
                Type = "fi";
                JsonQuestion json = JsonQuestion.getJsonQuestion(myFi.QuestionContent);
                QuestionContent = JsonConvert.SerializeObject(json);
            }
            else if (question is Fast)
            {
                Fast myFa = (Fast)question;
                Type = "fs";
                JsonQuestion json = JsonQuestion.getJsonQuestion(myFa.QuestionContent);
                QuestionContent = JsonConvert.SerializeObject(json);
            }
            else if (question is True_False)
            {
                True_False myTf = (True_False)question;
                Type = "tf";
                JsonQuestion json = JsonQuestion.getJsonQuestion(myTf.QuestionContent);
                QuestionContent = JsonConvert.SerializeObject(json);
            }

            AnswerKey         = question.AnswerKey;
            ImageBase64String = question.Image64String;
        }
Esempio n. 5
0
        private void UpdateView(Question nextQues, bool isShownAnswerkey)
        {
            //throw new NotImplementedException();

            if (_view is V_Vong1_Thi)
            {
                V_Vong1_Thi myView = _view as V_Vong1_Thi;
                if (nextQues == null)// het cau hoi vong nay
                {
                    return;

                    ////
                    ///
                }
                if (nextQues is Compound)
                {
                    Compound ques = nextQues as Compound;
                    myView.QuestionText = ques.QuestionContent + "\nA." + ques.ChoiceA + "\nB." + ques.ChoiceB + "\nC." + ques.ChoiceC + "\nD." + ques.ChoiceD;
                }
                else if (nextQues is Multiple_Choice)
                {
                    Multiple_Choice ques = nextQues as Multiple_Choice;
                    myView.QuestionText = ques.QuestionContent + "\nA." + ques.ChoiceA + "\nB." + ques.ChoiceB + "\nC." + ques.ChoiceC + "\nD." + ques.ChoiceD;
                }
                else if (nextQues is Fill_In)
                {
                    Fill_In ques = nextQues as Fill_In;
                    myView.QuestionText = ques.QuestionContent.Replace("NNN", "...");
                }
                else
                {
                    myView.QuestionText = nextQues.QuestionContent;
                }

                myView.QuestionNumText = nextQues.STT;

                if (isShownAnswerkey)
                {
                    try
                    {
                        myView.AnswerKey = _preQuestion.AnswerKey;
                    }
                    catch
                    {
                    }
                    _tmrCheckCauhoi.Stop();

                    Timer tmrDung = new Timer();
                    tmrDung.Enabled = true;
                    //
                    if (myView.AnswerKey.Length < 10)
                    {
                        tmrDung.Interval = 1000;
                    }
                    else
                    {
                        tmrDung.Interval = 2000;
                    }
                    tmrDung.Start();
                    tmrDung.Tick += delegate(object send, EventArgs ev)
                    {
                        _tmrCheckCauhoi.Start();
                        myView.AnswerKey = "";
                        tmrDung.Stop();
                        tmrDung.Dispose();
                    };
                }
                else
                {
                    myView.AnswerKey = "";
                }
            }
        }
        public Question GetQuestion(string questionId)
        {
            SqlDataReader reader   = null;
            Question      question = null;

            try
            {
                SqlCommand cmd = new SqlCommand();
                cmd.CommandText = "exec GetQuetion @questionId='" + questionId + "'";
                cmd.Connection  = connection;
                //
                //List<Model.Team> teamS = new List<Model.Team>();
                //
                reader = cmd.ExecuteReader();
                if (reader.Read())
                {
                    question = Question.CreateNewQuestion(reader.GetString(1));
                    //string teamID = reader.GetString(0);
                    //string teamName = reader.GetString(1);
                    //int score = reader.GetInt32(2);
                    //string round1State = reader.GetString(3);
                    //string round2State = reader.GetString(4);
                    //string round3State = reader.GetString(5);
                    //DateTime dateTime = reader.GetDateTime(6);
                    //
                    //team = new Model.Team();
                    //team.ID = teamID;
                    //team.Name = teamName;
                    //team.Round1State = round1State;
                    //team.Round2State = round2State;
                    //team.Round3State = round3State;
                    //team.LastModified = dateTime;
                    ////
                    //teamS.Add(team);

                    question.Id = questionId;
                    question.QuestionContent = reader.GetString(2);
                    question.AnswerKey       = reader.GetString(7);
                    question.Image64String   = reader.GetString(8);
                    if (!reader.IsDBNull(9))
                    {
                        question.ImageRelativePath = reader.GetString(9);
                    }

                    //
                    if (question is Multiple_Choice)
                    {
                        Multiple_Choice myMC = (Multiple_Choice)question;
                        myMC.ChoiceA = reader.GetString(3);
                        myMC.ChoiceB = reader.GetString(4);
                        myMC.ChoiceC = reader.GetString(5);
                        myMC.ChoiceD = reader.GetString(6);
                    }
                    else if (question is Compound)
                    {
                        Compound myCp = (Compound)question;
                        myCp.ChoiceA = reader.GetString(3);
                        myCp.ChoiceB = reader.GetString(4);
                        myCp.ChoiceC = reader.GetString(5);
                        myCp.ChoiceD = reader.GetString(6);
                    }
                }
                //
                reader.Close();
                connection.Close();
                return(question);
            }
            catch (Exception e)
            {
                reader.Close();
                connection.Close();
                return(null);
            }
        }
Esempio n. 7
0
        public Result ImportExcelFile(string path)
        {
            if (!KiemTraCuPhapFile(path))
            {
                throw new Exception("Loi Cu Phap File");
            }
            List <Question> myGottenQuestions       = new List <Question>();
            List <string>   myCannotAddQuestionList = new List <string>();
            // nhận đối tượng rỗng
            Application myApp   = null;
            Workbooks   myBooks = null;
            Workbook    myBook  = null;

            Sheets    mySheets = null;
            Worksheet mySheet  = null;

            try
            {
                //bool kqCheck = false;

                // nạp dữ liệu lên
                myApp    = new Application();
                myBooks  = myApp.Workbooks;
                myBook   = myBooks.Open(path);
                mySheets = myBook.Worksheets;
                mySheet  = (Worksheet)mySheets[1];
                var cells = mySheet.Cells;
                var range = cells.SpecialCells(XlCellType.xlCellTypeLastCell);
                // kiểm tra dữ liệu
                int lastRow = range.Row;

                int lastColumn      = range.Column;
                var mangHeaderChuan = new string[10]
                {
                    "STT",
                    "Question Type",
                    "Score",
                    "QuestionContent",
                    "Choice A",
                    "Choice B",
                    "Choice C",
                    "Choice D",
                    "Anser Key",
                    "Image Path"
                };
                int i          = 4;
                int colToCheck = mangHeaderChuan.Length;

                for (i = 2; i <= lastRow; i++)
                {
                    string   type       = mySheet.Cells[i, 2].Value2;
                    Question myQuestion = Question.CreateNewQuestion(type);
                    if (myQuestion != null)
                    {
                        myQuestion.Score             = (int)mySheet.Cells[i, 3].Value2;
                        myQuestion.QuestionContent   = (string)mySheet.Cells[i, 4].Value2;
                        myQuestion.AnswerKey         = mySheet.Cells[i, 9].Value2 + "";
                        myQuestion.Image64String     = GetBase64StringFromPath(GetThisFolderPath(path) + "\\" + mySheet.Cells[i, 10].Value2);
                        myQuestion.ImageRelativePath = mySheet.Cells[i, 10].Value2;
                        if (myQuestion is Multiple_Choice)
                        {
                            Multiple_Choice myMultipleChoiceQuestion = (Multiple_Choice)myQuestion;
                            myMultipleChoiceQuestion.ChoiceA = mySheet.Cells[i, 5].Value2;
                            myMultipleChoiceQuestion.ChoiceB = mySheet.Cells[i, 6].Value2;
                            myMultipleChoiceQuestion.ChoiceC = mySheet.Cells[i, 7].Value2;
                            myMultipleChoiceQuestion.ChoiceD = mySheet.Cells[i, 8].Value2;
                        }
                        if (myQuestion is Compound)
                        {
                            Compound myCompoundQuesion = (Compound)myQuestion;
                            myCompoundQuesion.ChoiceA = mySheet.Cells[i, 5].Value2;
                            myCompoundQuesion.ChoiceB = mySheet.Cells[i, 6].Value2;
                            myCompoundQuesion.ChoiceC = mySheet.Cells[i, 7].Value2;
                            myCompoundQuesion.ChoiceD = mySheet.Cells[i, 8].Value2;
                        }
                        myGottenQuestions.Add(myQuestion);
                    }
                    else
                    {
                        myCannotAddQuestionList.Add(i.ToString());
                    }
                }
                if (i == lastColumn + 1)
                {
                    //kqCheck = true;
                }


                //object MissingTypeLocal = System.Reflection.Missing.Value;
                //myBook.Close(true, MissingTypeLocal, MissingTypeLocal);
                //myBooks.Close();
                //myApp.Quit();
                //

                /*
                 * string type = mySheet.Cells[i, 2].Value2;
                 * Question myQuestion = Question.CreateNewQuestion(type);
                 * if (myQuestion != null)
                 * {
                 *  myQuestion.Score = (int)mySheet.Cells[i, 3].Value2;
                 *  myQuestion.QuestionContent = (string)mySheet.Cells[i, 4].Value2;
                 *  myQuestion.AnswerKey = mySheet.Cells[i, 9].Value2 + "";
                 *  if (myQuestion is Multiple_Choice)
                 *  {
                 *      Multiple_Choice myMultipleChoiceQuestion = (Multiple_Choice)myQuestion;
                 *      myMultipleChoiceQuestion.ChoiceA = mySheet.Cells[i, 5].Value2;
                 *      myMultipleChoiceQuestion.ChoiceB = mySheet.Cells[i, 6].Value2;
                 *      myMultipleChoiceQuestion.ChoiceC = mySheet.Cells[i, 7].Value2;
                 *      myMultipleChoiceQuestion.ChoiceD = mySheet.Cells[i, 8].Value2;
                 *  }
                 *  if (myQuestion is Compound)
                 *  {
                 *      Compound myCompoundQuesion = (Compound)myQuestion;
                 *      myCompoundQuesion.ChoiceA = mySheet.Cells[i, 5].Value2;
                 *      myCompoundQuesion.ChoiceB = mySheet.Cells[i, 6].Value2;
                 *      myCompoundQuesion.ChoiceC = mySheet.Cells[i, 7].Value2;
                 *      myCompoundQuesion.ChoiceD = mySheet.Cells[i, 8].Value2;
                 *  }
                 *  myGottenQuestions.Add(myQuestion);
                 * }
                 * else
                 *  myCannotAddQuestionList.Add(i.ToString());
                 */

                object MissingTypeLocal = System.Reflection.Missing.Value;
                myBook.Close(true, MissingTypeLocal, MissingTypeLocal);
                myBooks.Close();
                myApp.Quit();
                releaseObject(range);
                releaseObject(cells);
                releaseObject(mySheet);
                releaseObject(mySheets);
                releaseObject(myBook);
                releaseObject(myBooks);
                releaseObject(myApp);
            }
            catch
            {
            }
            // trả bộ nhớ lại

            //
            //foreach(var Cell in mySheet.Cells)
            //{
            //    Marshal.ReleaseComObject(Cell);
            //}
            //


            return(new Result
            {
                GottenQuestions = myGottenQuestions,
                NotGottenQuestion = myCannotAddQuestionList
            });
            //
        }
        private void UpdateView(Question nextQues, bool isShownAnswerkey)
        {
            //throw new NotImplementedException();

            if (_view is V_Led_Vong1)
            {
                V_Led_Vong1 myView = _view as V_Led_Vong1;
                if (nextQues == null)// het cau hoi vong nay
                {
                    return;

                    ////
                    ///
                }
                if (nextQues.ImageRelativePath == null || nextQues.ImageRelativePath == "")
                {
                    //throw new NotImplementedException();'
                    if (nextQues is Compound)
                    {
                        Compound ques = nextQues as Compound;
                        myView.QuestionText        = ques.QuestionContent;
                        myView.QuestionMaybeAnswer = "A." + ques.ChoiceA + "\nB." + ques.ChoiceB + "\nC." + ques.ChoiceC + "\nD." + ques.ChoiceD;
                    }
                    else if (nextQues is Multiple_Choice)
                    {
                        Multiple_Choice ques = nextQues as Multiple_Choice;
                        myView.QuestionText        = ques.QuestionContent;
                        myView.QuestionMaybeAnswer = "A." + ques.ChoiceA + "\nB." + ques.ChoiceB + "\nC." + ques.ChoiceC + "\nD." + ques.ChoiceD;
                        myView.ShowABCD            = true;
                    }
                    else if (nextQues is Fill_In)
                    {
                        Fill_In ques = nextQues as Fill_In;
                        myView.QuestionText = ques.QuestionContent.Replace("NNN", "...");
                        myView.ShowABCD     = false;
                    }
                    else
                    {
                        myView.QuestionText = nextQues.QuestionContent;
                        myView.ShowABCD     = false;
                    }

                    myView.ShowPic         = false;
                    myView.QuestionNumText = nextQues.STT;

                    //if (isShownAnswerkey)
                    //{
                    //    try
                    //    {
                    //        myView.AnswerKey = _preQuestion.AnswerKey;
                    //    }
                    //    catch
                    //    {

                    //    }
                    //    _tmrCheckCauhoi.Stop();

                    //    Timer tmrDung = new Timer();
                    //    tmrDung.Enabled = true;
                    //    //
                    //    if (myView.AnswerKey.Length < 10)
                    //        tmrDung.Interval = 1000;
                    //    else
                    //        tmrDung.Interval = 2000;
                    //    tmrDung.Start();
                    //    tmrDung.Tick += delegate (object send, EventArgs ev)
                    //    {
                    //        //

                    //        V_Load(null, EventArgs.Empty);

                    //        //_tmrCheckCauhoi.Start();

                    //        myView.AnswerKey = "";
                    //        tmrDung.Stop();
                    //        tmrDung.Dispose();
                    //    };


                    //}
                    //else
                    //{
                    //    myView.AnswerKey = "";
                    //}

                    myView.RelocatingAndResizingControls("nohinh");
                }

                else

                {
                    try
                    {
                        myView.Pic = Image.FromFile(Application.StartupPath + nextQues.ImageRelativePath);
                    }

                    finally
                    {
                        if (nextQues is Compound)
                        {
                            Compound ques = nextQues as Compound;
                            myView.QuestionText        = ques.QuestionContent;
                            myView.QuestionMaybeAnswer = "A." + ques.ChoiceA + "\nB." + ques.ChoiceB + "\nC." + ques.ChoiceC + "\nD." + ques.ChoiceD;
                        }
                        else if (nextQues is Multiple_Choice)
                        {
                            Multiple_Choice ques = nextQues as Multiple_Choice;
                            myView.QuestionText        = ques.QuestionContent;
                            myView.QuestionMaybeAnswer = "A." + ques.ChoiceA + "\nB." + ques.ChoiceB + "\nC." + ques.ChoiceC + "\nD." + ques.ChoiceD;
                            myView.ShowABCD            = true;
                        }
                        else if (nextQues is Fill_In)
                        {
                            Fill_In ques = nextQues as Fill_In;
                            myView.QuestionText = ques.QuestionContent.Replace("NNN", "...");
                            myView.ShowABCD     = false;
                        }
                        else
                        {
                            myView.QuestionText = nextQues.QuestionContent;
                            myView.ShowABCD     = false;
                        }

                        myView.ShowPic         = true;
                        myView.QuestionNumText = nextQues.STT;

                        myView.RelocatingAndResizingControls("hinh");
                    }
                }
            }
        }