示例#1
0
        public void TestSum()
        {
            //var data = TestDAO.GetDataForUnitTest1_Sum();
            var data = TestDAO.GetDataForTest("\\DB\\test.data.db",
                                              "TestDB_UnitTest1_Sum",
                                              (reader, records) =>
            {
                records.Add(new { a = reader.GetValue(1), b = reader.GetValue(2), sum = reader.GetValue(3) });
            });

            var data2 = TestDAO.GetDataForTest <GetDataForUnitTest1_Sum_DataObject>("\\DB\\test.data.db",
                                                                                    "TestDB_UnitTest1_Sum",
                                                                                    (reader, records) =>
            {
                records.Add(new GetDataForUnitTest1_Sum_DataObject {
                    X = (long)reader.GetValue(1),
                    Y = (long)reader.GetValue(2), SUM = (long)reader.GetValue(3)
                });
            });


            foreach (var d in data)
            {
                long a   = ((dynamic)d).a;
                long b   = ((dynamic)d).b;
                long sum = ((dynamic)d).sum;
            }
            Console.WriteLine(data);
        }
示例#2
0
        public void CheckItemTrue(ModelTblTest model)
        {
            var SessionItem = Session[ListCheck];
            var list        = (List <ItemDAO>)SessionItem;

            //Them moi session

            if (list != null)
            {
                var     item          = new ItemDAO();
                TestDAO tblTestModel  = new TestDAO();
                var     TestcheckTrue = tblTestModel.ListTestTrue(model.IDTest);
                item.Img        = "~/Assets/dist/img/yes.png";
                item.TestTrue   = TestcheckTrue.TestTrue;
                item.CountTotal = item.CountTotal + 1;
                list.Add(item);
                Session[ListCheck] = list;
            }
            else
            {
                list = new List <ItemDAO>();
                var     item          = new ItemDAO();
                TestDAO tblTestModel  = new TestDAO();
                var     TestcheckTrue = tblTestModel.ListTestTrue(model.IDTest);
                item.Img        = "~/Assets/dist/img/yes.png";
                item.TestTrue   = TestcheckTrue.TestTrue;
                item.CountTotal = item.CountTotal + 1;
                list.Add(item);
                Session[ListCheck] = list;
            }
        }
示例#3
0
        // GET: admin/tests
        public ActionResult Index(string searchString, int page = 1, int pageSize = 10)
        {
            var testModel = new TestDAO().GetAllTestPageList(searchString, page, pageSize);

            ViewBag.SearchString = searchString;
            return(View(testModel));
        }
示例#4
0
        // GET: Admin/Tests
        public ActionResult Index(int page = 1, int pageSize = 10)
        {
            var dao   = new TestDAO();
            var model = dao.ListAllPaging(page, pageSize);
            var tests = db.Tests.Include(t => t.Student).Include(t => t.Subject);

            return(View(model));
        }
示例#5
0
        public ActionResult Index(ModelTblTest model, int Id)
        {
            TestDAO tblTestModel = new TestDAO();
            var     TestTrue     = tblTestModel.ListTestTrue(model.IDTest);

            if (ModelState.IsValid)
            {
                if (model.Ischecked1)
                {
                    string Correct = "A";
                    if (Correct == TestTrue.TestTrue)
                    {
                        CheckItemTrue(model);
                    }
                    else
                    {
                        CheckItemFalse(model);
                    }
                }
                else if (!!model.Ischecked2)
                {
                    string Correct = "B";
                    if (Correct == TestTrue.TestTrue)
                    {
                        CheckItemTrue(model);
                    }
                    else
                    {
                        CheckItemFalse(model);
                    }
                }
                else if (!!model.Ischecked3)
                {
                    string Correct = "C";
                    if (Correct == TestTrue.TestTrue)
                    {
                        CheckItemTrue(model);
                    }
                    else
                    {
                        CheckItemFalse(model);
                    }
                }
                else if (!!model.Ischecked4)
                {
                    string Correct = "D";
                    if (Correct == TestTrue.TestTrue)
                    {
                        CheckItemTrue(model);
                    }
                    else
                    {
                        CheckItemFalse(model);
                    }
                }
            }
            return(View());
        }
示例#6
0
        public static void main()
        {
            CollectionEvents events = TestDAO.getEvents();

            events.publication(new ConsoleOutput());

            CollectionEvents events2 = DAOFile.getEvents(15, 7);

            events2.publication(new ConsoleOutput());
        }
示例#7
0
 public static void HelloStart()
 {
     int i = 0;
     i++;
     Test1.Outmessage();
     Test1.Overmessage();
     Test1.Outmessage();
     // AnonymousmethodsPrac aaaa = new AnonymousmethodsPrac();
     var testdao = new TestDAO();
     testdao.AddStr("test");
 }
    protected void btnAddTest_Click(object sender, EventArgs e)
    {
        TestDAO dao = new TestDAO();
        Test    t   = new Test
        {
            Name   = "",
            Status = false
        };
        bool result = dao.addTest(t);

        Response.Redirect("ManageTest.aspx");
    }
        public ActionResult Index()
        {
            var _userDao = new UserDAO();
            var _examDao = new ExamDAO();
            var _testDao = new TestDAO();
            var _quizDao = new QuizDAO();

            ViewBag.User = _userDao.GetAllUserActive().Count.ToString();
            ViewBag.Exam = _examDao.GetAllExamActive().Count.ToString();
            ViewBag.Test = _testDao.GetAllTest().Count.ToString();
            ViewBag.Quiz = _quizDao.GetAllQuizActive().Count.ToString();
            return(View());
        }
示例#10
0
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Test test = new TestDAO().GetTestById(id);

            if (test == null)
            {
                return(HttpNotFound());
            }
            return(View(test));
        }
示例#11
0
    protected void loadPage()
    {
        QuizDAO     qdao       = new QuizDAO();
        TestDAO     tdao       = new TestDAO();
        List <Quiz> showData   = new List <Quiz>();
        string      doer       = (string)Session["ID"];//getSession
        int         testNumber = 0;

        if (Request["IDQUIZREVIEW"] != null)
        {
            testNumber = int.Parse(Request["IDQUIZREVIEW"]);
        }
        else
        {
            testNumber = (int)Session["TESTID"];
        }
        Session["TESTID"] = null;
        LabelResult.Text  = tdao.getReviewScore(doer, testNumber)[0];
        showData          = qdao.getReview(doer, testNumber); //need attention
        Label[] labelUserAnswerList    = { ya1, ya2, ya3, ya4, ya5, ya6, ya7, ya8, ya9, ya10, ya11, ya12, ya13, ya14, ya15, ya16, ya17, ya18, ya19, ya20 };
        Label[] labelCorrectAnswerList = { ca1, ca2, ca3, ca4, ca5, ca6, ca7, ca8, ca9, ca10, ca11, ca12, ca13, ca14, ca15, ca16, ca17, ca18, ca19, ca20 };
        Label[] labelQuestionList      = { q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12, q13, q14, q15, q16, q17, q18, q19, q20 };


        for (int i = 0; i < 20; i++)
        {
            labelQuestionList[i].Text = showData[i].QuizDetails;

            if (showData[i].UserAnswer.Equals("Empty"))
            {
                labelUserAnswerList[i].Text    = "You didn't do this question! ";
                labelCorrectAnswerList[i].Text = "Correct answer: " + showData[i].CorrectAnswer;
            }
            else
            {
                if (showData[i].UserAnswer.Equals(showData[i].CorrectAnswer))
                {
                    labelUserAnswerList[i].Text         = "Your answer: " + showData[i].UserAnswer;
                    labelCorrectAnswerList[i].Text      = "Your answer is correct!";
                    labelCorrectAnswerList[i].ForeColor = System.Drawing.Color.Green;
                }
                else
                {
                    labelUserAnswerList[i].Text    = "Your answer: " + showData[i].UserAnswer;
                    labelCorrectAnswerList[i].Text = "Correct answer: " + showData[i].CorrectAnswer;
                }
            }
        }
    }
示例#12
0
        public ActionResult Index(int Id)
        {
            var     listitem    = Session[ListCheck];
            TestDAO tblViewtest = new TestDAO();
            var     item        = new List <ItemDAO>();

            if (listitem != null)
            {
                item = (List <ItemDAO>)listitem;
            }
            var model = tblViewtest.ListTest(Id);

            ViewBag.listcheckitem = item;
            return(View(model));
        }
示例#13
0
        internal override async Task Action()
        {
            ITest test = new TestDAO();

            try
            {
                await test.AddTestimonial(patient, doc, message, time, this);

                viewCallback.TestReadViewSucces();
            }
            catch (Exception e)
            {
                viewCallback.TestReadViewFail();
            }
        }
示例#14
0
        // GET: admin/tests/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Test test = new TestDAO().GetTestById(id);

            if (test == null)
            {
                return(HttpNotFound());
            }
            SetExamViewBag(test.ExamID);
            SetExamineeViewBag();
            //SetSchoolYearViewBag(test.Subject.Grade.SchoolYearID);
            //SetGradeViewBag(test.Subject.GradeID);
            //SetSubjectViewBag(test.SubjectID);
            SetScoreLadderViewBag(test.ScoreLadderID);
            return(View(test));
        }
示例#15
0
        // Chọn câu hỏi
        private bool SelectQuiz(Test test)
        {
            var _exam = new ExamDAO().GetExamById(test.ExamID);

            // Chọn câu hỏi theo kiểu ngẫu nhiên (random)
            if (test.QuizSelection == ConstantVariable.RandomQuiz)
            {
                //Lấy tất cả câu hỏi theo môn học từ kỳ thi đã chọn
                var _quizList    = new QuizDAO().GetAllQuizBySubject(_exam.SubjectID);
                var _codeTestArr = Regex.Split(test.CodeTestArr, ",");                  //Trả về mảng mã đề
                var _session     = Session[ConstantVariable.USER_SESSION] as UserLogin; // Thông tin user đăng nhập

                //Hình thức: không cố định câu hỏi / khác nhau ở mỗi đề
                if (test.FixedOrChanged == ConstantVariable.ChangedQuiz)
                {
                    //Kiểm tra số câu hỏi có đủ hay không
                    if ((test.NumberOfQuestions * _codeTestArr.Length) > _quizList.Count)
                    {
                        ModelState.AddModelError("", "Số câu hỏi trong ngân hàng câu hỏi không đủ để tạo đề thi này.");
                        return(false);
                    }
                    List <int> _quizIdList = new List <int>();
                    for (int i = 0; i < _codeTestArr.Length; i++)
                    {
                        if (!String.IsNullOrEmpty(_codeTestArr[i]))
                        {
                            test.CodeTest = int.Parse(_codeTestArr[i]); //Mã đề
                            Random     random = new Random();
                            List <int> _quizIdListByCodeTest = new List <int>();
                            for (int j = 0; j < test.NumberOfQuestions; j++)
                            {
                                int quizId;
                                do
                                {
                                    quizId = _quizList[random.Next(0, _quizList.Count - 1)].Id;
                                } while (_quizIdList.Contains(quizId));
                                _quizIdListByCodeTest.Add(quizId);
                            }

                            test.CreatedBy    = _session.UserID; //Người tạo
                            test.CreatedDate  = DateTime.Now;
                            test.ModifiedDate = DateTime.Now;

                            var r = new TestDAO().Insert(test, _quizIdListByCodeTest);
                            if (r == false)
                            {
                                return(r);
                            }

                            new SystemLogDAO().Insert("Tạo đề thi thành công [Mã đề: " + test.CodeTest + "] [Kỳ thi: " + _exam.Titile + "]", _session.UserName, DateTime.Now.TimeOfDay, DateTime.Now.Date, GetIPAddress.GetLocalIPAddress());
                        }
                    }//end:For
                }
                // Hình thức: cố định câu hỏi
                else if (test.FixedOrChanged == ConstantVariable.FixedQuiz)
                {
                    // Kiểm tra số câu hỏi có đủ hay không
                    if (test.NumberOfQuestions > _quizList.Count)
                    {
                        ModelState.AddModelError("", "Số câu hỏi trong ngân hàng câu hỏi không đủ để tạo đề thi này.");
                        return(false);
                    }

                    // Trộn câu hỏi
                    if (test.Mix == ConstantVariable.MixQuiz)
                    {
                        List <int> _quizIdList  = new List <int>();
                        List <int> _quizIdList0 = new List <int>();
                        bool       r            = false;

                        for (int i = 0; i < _codeTestArr.Length; i++)
                        {
                            if (!String.IsNullOrEmpty(_codeTestArr[i]))
                            {
                                test.CodeTest = int.Parse(_codeTestArr[i]); //Mã đề
                                Random random = new Random();

                                if (i == 0)
                                {
                                    for (int j = 0; j < test.NumberOfQuestions; j++)
                                    {
                                        int quizId;
                                        do
                                        {
                                            quizId = _quizList[random.Next(0, _quizList.Count - 1)].Id;
                                        } while (_quizIdList.Contains(quizId));
                                        _quizIdList.Add(quizId);

                                        var _quiz = new QuizDAO().GetById(quizId);

                                        _quiz.MixQuiz += "<" + test.CodeTest + ">" + j + "</" + test.CodeTest + ">";

                                        new QuizDAO().UpdateMixQuiz(_quiz);
                                    }

                                    test.CreatedBy    = _session.UserID; //Người tạo
                                    test.CreatedDate  = DateTime.Now;
                                    test.ModifiedDate = DateTime.Now;

                                    r = new TestDAO().Insert(test, _quizIdList);
                                    if (r == false)
                                    {
                                        return(r);
                                    }
                                    _quizIdList0 = _quizIdList.ToList();
                                    new SystemLogDAO().Insert("Tạo đề thi thành công [Mã đề: " + test.CodeTest + "] [Kỳ thi: " + _exam.Titile + "]", _session.UserName, DateTime.Now.TimeOfDay, DateTime.Now.Date, GetIPAddress.GetLocalIPAddress());
                                }
                                else
                                {
                                    List <int> _quizIdListMixQuiz = new List <int>();
                                    List <int> _temp = _quizIdList0.ToList();
                                    for (int j = 0; j < test.NumberOfQuestions; j++)
                                    {
                                        int quizId;
                                        int index;
                                        do
                                        {
                                            index  = random.Next(0, _temp.Count - 1);
                                            quizId = _temp[index];
                                        } while (_quizIdListMixQuiz.Contains(quizId));

                                        _quizIdListMixQuiz.Add(quizId);
                                        _temp.RemoveAt(index);
                                        if (j == test.NumberOfQuestions - 1)
                                        {
                                            int _count = 0;
                                            for (int k = 0; k < test.NumberOfQuestions; k++)
                                            {
                                                if (_quizIdListMixQuiz[k] == _quizIdList0[k])
                                                {
                                                    _count++;
                                                }
                                            }
                                            if (_count >= test.NumberOfQuestions)
                                            {
                                                j = -1;
                                                _temp.Clear();
                                                _temp = _quizIdListMixQuiz.ToList();
                                                _quizIdListMixQuiz.Clear();
                                            }
                                        }
                                    }
                                    for (int p = 0; p < _quizIdListMixQuiz.Count; p++)
                                    {
                                        var _quiz = new QuizDAO().GetById(_quizIdListMixQuiz[p]);

                                        _quiz.MixQuiz += "<" + test.CodeTest + ">" + p + "</" + test.CodeTest + ">";

                                        new QuizDAO().UpdateMixQuiz(_quiz);
                                    }
                                    test.CreatedBy    = _session.UserID; //Người tạo
                                    test.CreatedDate  = DateTime.Now;
                                    test.ModifiedDate = DateTime.Now;
                                    r = new TestDAO().Insert(test, _quizIdListMixQuiz);
                                    if (r == false)
                                    {
                                        return(r);
                                    }
                                    test.MixQuiz = true;
                                    new TestDAO().UpdateMixQuiz(test);
                                    new SystemLogDAO().Insert("Tạo đề thi thành công [Mã đề: " + test.CodeTest + "] [Kỳ thi: " + _exam.Titile + "]", _session.UserName, DateTime.Now.TimeOfDay, DateTime.Now.Date, GetIPAddress.GetLocalIPAddress());
                                }
                            }
                        } //end:For
                    }     //end-if: trộn câu hỏi

                    //Trộn đáp án
                    else if (test.Mix == ConstantVariable.MixAnswer)
                    {
                        char[]     Alphabet     = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J' };
                        List <int> _quizIdList  = new List <int>();
                        List <int> _quizIdList0 = new List <int>();
                        bool       r            = false;

                        for (int i = 0; i < _codeTestArr.Length; i++)
                        {
                            if (!String.IsNullOrEmpty(_codeTestArr[i]))
                            {
                                test.CodeTest = int.Parse(_codeTestArr[i]); //Mã đề
                                Random random = new Random();

                                if (i == 0)
                                {
                                    for (int j = 0; j < test.NumberOfQuestions; j++)
                                    {
                                        int quizId;
                                        do
                                        {
                                            quizId = _quizList[random.Next(0, _quizList.Count - 1)].Id;
                                        } while (_quizIdList.Contains(quizId));
                                        _quizIdList.Add(quizId);
                                        var _quiz = new QuizDAO().GetById(quizId);

                                        _quiz.MixAnswer    += "<" + test.CodeTest + ">" + _quiz.AnswerText + "</" + test.CodeTest + ">";
                                        _quiz.MixKeyAnswer += "<" + test.CodeTest + ">" + _quiz.KeyAnswer + "</" + test.CodeTest + ">";

                                        new QuizDAO().UpdateMixAnswer(_quiz);
                                    }



                                    test.CreatedBy    = _session.UserID; //Người tạo
                                    test.CreatedDate  = DateTime.Now;
                                    test.ModifiedDate = DateTime.Now;

                                    r = new TestDAO().Insert(test, _quizIdList);
                                    if (r == false)
                                    {
                                        return(r);
                                    }
                                    _quizIdList0 = _quizIdList;
                                    new SystemLogDAO().Insert("Tạo đề thi thành công [Mã đề: " + test.CodeTest + "] [Kỳ thi: " + _exam.Titile + "]", _session.UserName, DateTime.Now.TimeOfDay, DateTime.Now.Date, GetIPAddress.GetLocalIPAddress());
                                }
                                else //Mix: Answer
                                {
                                    List <int> _temp = _quizIdList0;
                                    for (int j = 0; j < _temp.Count; j++)
                                    {
                                        var           _quiz      = new QuizDAO().GetById(_temp[j]);
                                        var           _answer    = Regex.Split(_quiz.AnswerText, "\r\n").ToList();
                                        List <string> _answerArr = new List <string>();
                                        int           alpha      = 0;
                                        // Remove các giá trị null  hoặc ""
                                        for (int k = 0; k < _answer.Count; k++)
                                        {
                                            if (!String.IsNullOrEmpty(_answer[k]))
                                            {
                                                var strPattern = "" + Alphabet[alpha] + ". ";
                                                _answerArr.Add(Encode.StripAnswerLabel(Encode.StripPTag(_answer[k]), strPattern));
                                                alpha++;
                                            }
                                        }
                                        _quiz.MixAnswer += "<" + test.CodeTest + ">";
                                        int _numChoice = _answerArr.Count;
                                        int indexKey   = 0;
                                        // Lấy index của đáp án
                                        for (int p = 0; p < Alphabet.Length; p++)
                                        {
                                            if (Alphabet[p].ToString() == _quiz.KeyAnswer.ToString())
                                            {
                                                indexKey = p;
                                                break;
                                            }
                                        }
                                        // Trộn đáp án của câu hỏi
                                        for (int k = 0; k < _numChoice; k++)
                                        {
                                            var indexRandom = random.Next(0, _answerArr.Count - 1);
                                            if (!String.IsNullOrEmpty(_answerArr[indexRandom]))
                                            {
                                                _quiz.MixAnswer += "<p>" + Alphabet[k] + ". " + Encode.StripPTag(_answerArr[indexRandom]) + "\r\n</p>";
                                                if (indexKey != -1)
                                                {
                                                    if (indexRandom < indexKey)
                                                    {
                                                        indexKey--;
                                                    }
                                                    else if (indexRandom == indexKey)
                                                    {
                                                        _quiz.MixKeyAnswer += "<" + test.CodeTest + ">" + Alphabet[k].ToString() + "</" + test.CodeTest + ">";
                                                        indexKey            = -1;
                                                    }
                                                }
                                                _answerArr.RemoveAt(indexRandom);
                                            }
                                        }
                                        _quiz.MixAnswer += "</" + test.CodeTest + ">";
                                        test.MixAnswer   = true;
                                        new QuizDAO().UpdateMixAnswer(_quiz);
                                        new TestDAO().UpdateMixAnswer(test);
                                    }//end-for

                                    test.CreatedBy    = _session.UserID; //Người tạo
                                    test.CreatedDate  = DateTime.Now;
                                    test.ModifiedDate = DateTime.Now;
                                    r = new TestDAO().Insert(test, _temp);
                                    if (r == false)
                                    {
                                        return(r);
                                    }
                                    new SystemLogDAO().Insert("Tạo đề thi thành công [Mã đề: " + test.CodeTest + "] [Kỳ thi: " + _exam.Titile + "]", _session.UserName, DateTime.Now.TimeOfDay, DateTime.Now.Date, GetIPAddress.GetLocalIPAddress());
                                }
                            }
                        }
                    }

                    // Trộn câu hỏi và đáp án
                    else if (test.Mix == ConstantVariable.MixAll)
                    {
                        // Trộn câu hỏi
                        List <int> _quizIdList  = new List <int>(); //Chứa câu hỏi của đề đầu tiên
                        List <int> _quizIdList0 = new List <int>(); //Chứa câu hỏi của các đề tiếp theo
                        bool       r            = false;
                        for (int i = 0; i < _codeTestArr.Length; i++)
                        {
                            if (!String.IsNullOrEmpty(_codeTestArr[i]))
                            {
                                test.CodeTest = int.Parse(_codeTestArr[i]); //Mã đề
                                Random random = new Random();

                                if (i == 0)
                                {
                                    for (int j = 0; j < test.NumberOfQuestions; j++)
                                    {
                                        int quizId;
                                        do
                                        {
                                            quizId = _quizList[random.Next(0, _quizList.Count - 1)].Id;
                                        } while (_quizIdList.Contains(quizId));
                                        _quizIdList.Add(quizId);
                                    }
                                    _quizIdList0 = _quizIdList;
                                }//end-if (i == 0)
                                else
                                {
                                    List <int> _quizIdListMixQuiz = new List <int>();
                                    List <int> _temp = _quizIdList0;
                                    for (int j = 0; j < test.NumberOfQuestions; j++)
                                    {
                                        int quizId;
                                        int index;
                                        do
                                        {
                                            index  = random.Next(0, _temp.Count - 1);
                                            quizId = _temp[index];
                                        } while (_quizIdListMixQuiz.Contains(quizId));

                                        _quizIdListMixQuiz.Add(quizId);
                                        _temp.RemoveAt(index);
                                        if (j == test.NumberOfQuestions - 1)
                                        {
                                            int _count = 0;
                                            for (int k = 0; k < test.NumberOfQuestions; k++)
                                            {
                                                if (_quizIdListMixQuiz[k] == _quizIdList0[k])
                                                {
                                                    _count++;
                                                }
                                            }
                                            if (_count >= test.NumberOfQuestions)
                                            {
                                                j     = 0;
                                                _temp = null;
                                                _temp = _quizIdListMixQuiz;
                                                _quizIdListMixQuiz = null;
                                            }
                                        }
                                    }
                                } //end-else of if (i == 0)
                            }     //end-if (!String.IsNullOrEmpty(_codeTestArr[i]))
                        }         //end-for

                        // Trộn đáp án


                        // Insert dữ liệu
                    } //end-if (test.Mix == ConstantVariable.MixAll)
                }     //end-if (test.FixedOrChanged == ConstantVariable.FixedQuiz)
            }
            // Chọn câu hỏi theo kiểu câu hỏi mới nhất
            if (test.QuizSelection == ConstantVariable.NewQuiz)
            {
                var _quizList = new QuizDAO().GetAllQuizNewSubject(_exam.SubjectID);
                if (_quizList.Count < test.NumberOfQuestions)
                {
                    ModelState.AddModelError("", "Số câu hỏi trong ngân hàng câu hỏi không đủ để tạo đề thi này.");
                    return(false);
                }
                else
                {
                    List <int> _quizIdList = new List <int>();
                    for (int i = 0; i < test.NumberOfQuestions; i++)
                    {
                        _quizIdList.Add(_quizList[i].Id);
                    }
                    var _session = Session[ConstantVariable.USER_SESSION] as UserLogin;
                    test.CreatedBy    = _session.UserID;
                    test.CreatedDate  = DateTime.Now;
                    test.ModifiedDate = DateTime.Now;
                    return(new TestDAO().Insert(test, _quizIdList));
                }
            }
            return(true);
        }
示例#16
0
        private bool CheckInputTest(Test test)
        {
            if (test.ExamID <= 0 || test.ExamID == null)
            {
                ModelState.AddModelError("", "Vui lòng chọn kỳ thi");
                return(false);
            }
            if (String.IsNullOrEmpty(test.CodeTestArr))
            {
                ModelState.AddModelError("", "Vui lòng nhập vào mã đề của đề thi. Nếu muốn tạo nhiều đề thi cùng một lúc, mỗi mã đề cách nhau dấu phẩy.");
                return(false);
            }
            else
            {
                var _regex    = new Regex(@"[0-9,]");
                var _codeTest = test.CodeTestArr.Replace(" ", string.Empty);
                if (_regex.IsMatch(_codeTest) == false)
                {
                    ModelState.AddModelError("", "Mã đề không hợp lệ. Chú ý: Nếu muốn tạo nhiều đề thi cùng một lúc, mỗi mã đề cách nhau dấu phẩy.");
                    return(false);
                }
                else
                {
                    var    _codeTestArr = Regex.Split(_codeTest, ",");
                    var    _exam        = new ExamDAO().GetExamById(test.ExamID);
                    var    _testList    = new TestDAO().GetAllTestByExam(_exam);
                    string temp         = null;
                    for (int i = 0; i < _codeTestArr.Length; i++)
                    {
                        if (_codeTestArr[i] == temp)
                        {
                            ModelState.AddModelError("", "Mã đề không hợp lệ. Chú ý: Nếu muốn tạo nhiều đề thi cùng một lúc, mỗi mã đề cách nhau dấu phẩy, mã đề phải khác nhau.");
                            return(false);
                        }
                        else
                        {
                            for (int j = 0; j < _testList.Count; j++)
                            {
                                if (_testList[j].CodeTest.ToString() == _codeTestArr[i])
                                {
                                    ModelState.AddModelError("", "Mã đề không hợp lệ. Mã đề phải khác nhau.");
                                    return(false);
                                }
                            }
                        }
                        temp = _codeTestArr[i];
                    }
                    test.CodeTestArr = _codeTest;
                }
            }
            if (test.NumberOfQuestions <= 0 || test.NumberOfQuestions == null)
            {
                ModelState.AddModelError("", "Số câu hỏi không hợp lệ");
                return(false);
            }
            if (test.Time <= 0)
            {
                ModelState.AddModelError("", "Thời gian làm bài không hợp lệ");
                return(false);
            }


            return(true);
        }
示例#17
0
        public ActionResult StartTheTest(Test test)
        {
            var _test          = new TestDAO().GetTestByCodeTest(test.CodeTest, test.ExamID);
            var _testResultDAO = new TestResultDetailDAO();
            var _testResult    = new TestResultDetail();

            if (_test != null)
            {
                _test.UserAnswer = test.UserAnswer;
                _test.ExamID     = test.ExamID;
                _test.CodeTest   = test.CodeTest;
            }
            var _session = Session[ConstantVariable.USER_SESSION] as UserLogin;

            if (_session != null)
            {
                _testResult.UserID = _session.UserID;
            }
            _testResult.TestID = _test.Id;
            _testResult.ExamID = _test.ExamID;
            int _answerCorrectNum = 0;
            int _answerWrongNum   = 0;
            int _answerIgnoredNum = 0;
            var listQuiz          = new TestDAO().GetAllQuiz(_test.Id);

            if (_test.UserAnswer == null || _test.UserAnswer.Count <= 0)
            {
                _answerIgnoredNum = listQuiz.Count;
            }
            else
            {
                for (int i = 0; i < _test.UserAnswer.Count; i++)
                {
                    if (listQuiz[i].KeyAnswer == _test.UserAnswer[i])
                    {
                        _answerCorrectNum++;
                    }
                    else
                    {
                        _answerWrongNum++;
                    }
                }
                _answerIgnoredNum = listQuiz.Count - (_answerCorrectNum + _answerWrongNum);
            }

            _testResult.Score           = _answerCorrectNum * (_test.ScoreLadder.Score / _test.NumberOfQuestions);
            _testResult.NumberOfWrong   = _answerWrongNum;
            _testResult.NumberOfCorrect = _answerCorrectNum;
            _testResult.NumberOfIgnored = _answerIgnoredNum;
            var _countTimeToTake = new TestResultDetailDAO().GetAll(_session.UserID, _test.ExamID);

            if (_countTimeToTake == null)
            {
                _testResult.TimeToTake = 0;
            }
            else
            {
                _testResult.TimeToTake = _countTimeToTake.Count + 1;
            }
            _testResult.ActualTestDate  = DateTime.Now;
            _testResult.ActualStartTime = null;
            _testResult.ActualEndTime   = DateTime.Now.TimeOfDay;
            for (int i = 0; i < listQuiz.Count; i++)
            {
                if (i != listQuiz.Count - 1)
                {
                    _testResult.UserAnswer += _test.UserAnswer[i] + ",";
                }
                else
                {
                    _testResult.UserAnswer += _test.UserAnswer[i];
                }
            }
            int _id = _testResultDAO.Insert(_testResult);

            // Insert
            if (_id > 0)
            {
                var _testDb = new TestDAO().GetTestById(_testResult.TestID);
                new SystemLogDAO().Insert("Người dùng thi online [Kỳ thi: " + _testDb.Exam.Titile + "] [Môn thi: " + _testDb.Exam.Subject.Name + "] [Mã đề: " + _testDb.CodeTest + "]", _session.UserName, DateTime.Now.TimeOfDay, DateTime.Now.Date, GetIPAddress.GetLocalIPAddress());
                return(Redirect("/admin/exams/resultdetail/" + _id));
            }
            return(Redirect("/"));
        }