/// <summary>
 /// lấy danh sách sinh viên theo phòng thi, dùng bên quản lý
 /// </summary>
 /// <param name="page"></param>
 /// <param name="pageSize"></param>
 /// <param name="examHallCode">mã phòng thi</param>
 /// <returns></returns>
 public JsonResult GetListManage(string examhallcode)
 {
     ////khai báo lấy dữ liệu
     STUDENT_BUS bus = new STUDENT_BUS();
     DataSet ds = new DataSet();
     var ret = 0;
     ret = bus.getByExamhallManage(ref ds, examhallcode);
     bus.CloseConnection();
     List<dynamic> liStudent = new List<dynamic>();
     if (ret >= 0)
     {
         foreach (DataRow r in ds.Tables["examhallstudent"].Rows)
         {
             dynamic objtemp = new ExpandoObject();
             objtemp.EXAMHALLSTUDENTCODE = com.string4Row(r, "code", "");
             objtemp.CODEVIEW = com.string4Row(r, "codeview", ""); // MÃ SINH VIÊN
             objtemp.NAME = com.string4Row(r, "name", ""); // MÃ SINH VIÊN
             objtemp.BIRTHDAY = com.string4Row(r, "birthday", "");
             objtemp.EXAMFORMNAME = com.string4Row(r, "examformname", "");
             objtemp.REALBEGINTIME = com.string4Row(r, "realbegintime", ""); // thời gian thực tế sinh viên bắt đầu thi
             objtemp.REALENDTIME = com.string4Row(r, "realendtime", "");
             objtemp.EXAMFORMCODE = com.string4Row(r, "examformcode", "");
             objtemp.LOCK = com.int4Row(r, "lock", 0);
             objtemp.FINALENDTIME = com.string4Row(r, "finalendtime", "");
             liStudent.Add(objtemp);
         }
     }
     return Json(new
     {
         ret = ret,
         lst = liStudent
     }, JsonRequestBehavior.AllowGet);
 }
Beispiel #2
0
        ///// <summary>
        ///// chấm điểm cho 1 sinh viên
        ///// </summary>
        ///// <param name="examhallstudent"></param>
        ///// <returns></returns>
        public JsonResult GetMark(string examhallstudentcode)
        {
            // kiểm tra xem còn bản ghi examhallstudentcode này trên server ko
            EXAMHALLSTUDENT_BUS examhallstudentBus = new EXAMHALLSTUDENT_BUS();
            var examhallstudent =
                examhallstudentBus.GetByID(new EXAMHALLSTUDENT_OBJ.BusinessObjectID(examhallstudentcode));
            var ret = (examhallstudent == null) ? -1 : 0;

            if (ret >= 0)
            {
                // lấy kết quả thi của sinh viên này
                EXAMRESULT_BUS examresultBus = new EXAMRESULT_BUS();
                var            examresult    = examresultBus.getAllBy2("EXAMFORMDETAILCODE",
                                                                       new fieldpara("EXAMHALLSTUDENTCODE", examhallstudentcode, 0));
                if (examresult != null && examresult.Count > 0)
                {
                    // lấy danh sách câu hỏi và câu trả lời của sinh viên, trừ các dạng câu hỏi: điền vào đoạn trống tự điền từ, viết lại câu, viết đoạn văn, nghe nói, viết
                    DataSet ds = new DataSet();
                    ret = examresultBus.getExamresult(ref ds, "examresult", examresult[0].EXAMHALLSTUDENTCODE);
                    List <EXAMRESULT_OBJ> liResult1  = new List <EXAMRESULT_OBJ>(); // danh sách câu hỏi kiểu trắc nghiệm
                    List <EXAMRESULT_OBJ> liResultFg = new List <EXAMRESULT_OBJ>(); // lấy danh sách câu hỏi dạng điền vào đoạn trống tự gõ từ
                    List <EXAMRESULT_OBJ> liResultRw = new List <EXAMRESULT_OBJ>(); // lấy danh sách câu hỏi dạng viết lại câu
                    if (ret >= 0)
                    {
                        foreach (DataRow r in ds.Tables["examresult"].Rows)
                        {
                            var objtemp = new EXAMRESULT_OBJ
                            {
                                EXAMFORMDETAILCODE = com.string4Row(r, "examformdetailcode", ""),
                                QUESTIONCODE       = com.string4Row(r, "questioncode", ""),
                                ANSWERCODE         = com.string4Row(r, "answercode", ""),
                                ANSWERTEXT         = com.string4Row(r, "answertext", ""),
                                QUESTIONGROUPCODE  = com.string4Row(r, "questiongroupcode", "")
                            };
                            string questiontype = com.string4Row(r, "questiontype", "");
                            // nếu thuộc 6 dạng này thì add vào result1
                            if (questiontype.Equals("MC") || questiontype.Equals("FI") || questiontype.Equals("CO") ||
                                questiontype.Equals("LA") || questiontype.Equals("PA") || questiontype.Equals("MS"))
                            {
                                liResult1.Add(objtemp);
                            }
                            // nếu là dạng điền vào đoạn trống thì add vào resulf FG
                            if (questiontype.Equals("FG"))
                            {
                                liResultFg.Add(objtemp);
                            }
                            // nếu là dạng điền vào đoạn trống thì add vào resulfRW
                            if (questiontype.Equals("RW"))
                            {
                                liResultRw.Add(objtemp);
                            }
                        }
                    }

                    // lấy danh sách câu hỏi và câu trả lời trong đề thi của sinh viên
                    var examformcode = examresult[0].EXAMFORMCODE;
                    ds  = new DataSet();
                    ret = examresultBus.getExamform(ref ds, "examform", examformcode);
                    List <dynamic> liQuestion = new List <dynamic>();
                    if (ret >= 0)
                    {
                        foreach (DataRow r in ds.Tables["examform"].Rows)
                        {
                            dynamic question = new ExpandoObject();
                            question.QUESTIONCODE = com.string4Row(r, "code", "");       // mã câu hỏi
                            question.TRUEANSWER   = com.string4Row(r, "trueanswer", ""); // đáp án đúng
                                                                                         //    question.MARK = com.string4Row(r, "mark", ""); // số điểm cho câu hỏi này
                            question.MARK    = float.Parse(com.string4Row(r, "mark", ""), CultureInfo.InvariantCulture.NumberFormat);
                            question.CONTENT = com.string4Row(r, "content", "");         // nội dung câu hỏi, sử dụng trong trường hợp điền vào đoạn trống tự gõ từ, viết lại câu
                            liQuestion.Add(question);
                        }
                    }
                    // so sánh dạng trắc nghiệm, nếu đúng thì update lại điểm
                    List <EXAMRESULT_OBJ> dataUpdate = new List <EXAMRESULT_OBJ>();
                    List <fieldpara>      lipa       = new List <fieldpara>();
                    foreach (var item in liResult1)
                    {
                        foreach (var item2 in liQuestion)
                        {
                            if (item.QUESTIONCODE == item2.QUESTIONCODE && item.ANSWERCODE == item2.TRUEANSWER)
                            {
                                item.EXAMHALLSTUDENTCODE = examhallstudentcode;
                                item.EXAMFORMCODE        = examformcode;
                                lipa.Clear();
                                lipa.Add(new fieldpara("EXAMHALLSTUDENTCODE", examhallstudentcode, 0));
                                lipa.Add(new fieldpara("EXAMFORMDETAILCODE", item.EXAMFORMDETAILCODE, 0));
                                lipa.Add(new fieldpara("QUESTIONCODE", item.QUESTIONCODE, 0));
                                lipa.Add(new fieldpara("QUESTIONGROUPCODE", item.QUESTIONGROUPCODE, 0));
                                var obj = examresultBus.GetByKey(lipa.ToArray());
                                if (obj != null)
                                {
                                    obj.MARK = 1;
                                    if (item2.MARK > 0)
                                    {
                                        obj.MARK = item2.MARK;
                                    }
                                    dataUpdate.Add(obj);
                                }
                                else
                                {
                                    ret = -1;
                                }
                            }
                        }
                    }
                    // so sánh dạng điền vào chỗ trống tự gõ từ
                    foreach (var item in liResultFg)
                    {
                        foreach (var item2 in liQuestion)
                        {
                            if (item.QUESTIONCODE == item2.QUESTIONCODE)
                            {
                                // so sánh câu trả lời của sinh viên có khớp với đáp án hay không
                                string answer     = item.ANSWERTEXT; // Câu trả lời của sinh viên
                                string trueanswer = item2.CONTENT;   // Nội dung câu trả lời
                                answer = answer.Trim();
                                // loại bỏ các kí tự html
                                trueanswer = StripHtml(trueanswer).Trim();
                                if (String.Compare(answer, trueanswer, StringComparison.OrdinalIgnoreCase) == 0)
                                {
                                    item.EXAMHALLSTUDENTCODE = examhallstudentcode;
                                    item.EXAMFORMCODE        = examformcode;
                                    lipa.Clear();
                                    lipa.Add(new fieldpara("EXAMHALLSTUDENTCODE", examhallstudentcode, 0));
                                    lipa.Add(new fieldpara("EXAMFORMDETAILCODE", item.EXAMFORMDETAILCODE, 0));
                                    lipa.Add(new fieldpara("QUESTIONCODE", item.QUESTIONCODE, 0));
                                    lipa.Add(new fieldpara("QUESTIONGROUPCODE", item.QUESTIONGROUPCODE, 0));
                                    var obj = examresultBus.GetByKey(lipa.ToArray());
                                    if (obj != null)
                                    {
                                        obj.MARK = 1;
                                        if (item2.MARK > 0)
                                        {
                                            obj.MARK = item2.MARK;
                                        }
                                        dataUpdate.Add(obj);
                                    }
                                    else
                                    {
                                        ret = -1;
                                    }
                                }
                            }
                        }
                    }
                    // so sánh dạng viết lại câu
                    foreach (var item in liResultRw)
                    {
                        foreach (var item2 in liQuestion)
                        {
                            if (item.QUESTIONCODE == item2.QUESTIONCODE)
                            {
                                // so sánh câu trả lời của sinh viên có khớp với đáp án hay không
                                string answer     = item.ANSWERTEXT; // Câu trả lời của sinh viên
                                string trueanswer = item2.CONTENT;   // Nội dung câu trả lời
                                answer = answer.Trim();
                                // loại bỏ các kí tự html
                                trueanswer = StripHtml(trueanswer).Trim();
                                // regex về dạng chuẩn
                                answer = RegexAnswer(answer);
                                if (String.Compare(answer, trueanswer, StringComparison.OrdinalIgnoreCase) == 0)
                                {
                                    item.EXAMHALLSTUDENTCODE = examhallstudentcode;
                                    item.EXAMFORMCODE        = examformcode;
                                    lipa.Clear();
                                    lipa.Add(new fieldpara("EXAMHALLSTUDENTCODE", examhallstudentcode, 0));
                                    lipa.Add(new fieldpara("EXAMFORMDETAILCODE", item.EXAMFORMDETAILCODE, 0));
                                    lipa.Add(new fieldpara("QUESTIONCODE", item.QUESTIONCODE, 0));
                                    lipa.Add(new fieldpara("QUESTIONGROUPCODE", item.QUESTIONGROUPCODE, 0));
                                    var obj = examresultBus.GetByKey(lipa.ToArray());
                                    if (obj != null)
                                    {
                                        obj.MARK = 1;
                                        if (item2.MARK > 0)
                                        {
                                            obj.MARK = item2.MARK;
                                        }
                                        dataUpdate.Add(obj);
                                    }
                                    else
                                    {
                                        ret = -1;
                                    }
                                }
                            }
                        }
                    }
                    if (dataUpdate.Count > 0)
                    {
                        //mặc định khi vào danh sách này là xóa thành công nên ret= 1;
                        //duyệt toàn bộ danh sách bản ghi để xóa
                        examresultBus.BeginTransaction();
                        ret = examresultBus.UpdateMultiItems(dataUpdate);
                        if (ret < 0)
                        {
                            //Trong trường hợp nhiều thao tác, có một thao tác không thành công,
                            //hàm này được gọi để quay lại trạng thái trước khi thực hiện (bắt đầu từ khi gọi BeginTransaction()
                            examresultBus.RollbackTransaction();
                        }
                        else
                        {
                            //Sau khi thao tác dữ liệu thành công, hàm này được gọi để thực hiện ghi vào cơ sở dữ liệu
                            examresultBus.CommitTransaction();
                        }
                    }
                    return(Json(new
                    {
                        ret
                    }, JsonRequestBehavior.AllowGet));
                }
            }
            examhallstudentBus.CloseConnection();
            return(Json(new { }, JsonRequestBehavior.AllowGet));
        }
Beispiel #3
0
        public ActionResult Profile()
        {
            if (ses.isLogin() != 0)
            {
                ses.gotoPage("/admin/login", "Chưa đăng nhập");
                return(null);
            }
            STUDENT_BUS bus = new STUDENT_BUS();
            STUDENT_OBJ obj = bus.GetByID(new STUDENT_OBJ.BusinessObjectID(ses.loginCode));

            bus.CloseConnection();
            if (obj == null)
            {
                ses.gotoPage("/admin/login", "Chưa đăng nhập");
                return(null);
            }
            DataSet ds  = new DataSet();
            int     ret = bus.GetAllCourse(ref ds, "COURSESTUDIED", obj);

            bus.CloseConnection();
            List <dynamic> liMark = new List <dynamic>();

            if (ret >= 0)
            {
                foreach (DataRow r in ds.Tables["COURSESTUDIED"].Rows)
                {
                    dynamic objtemp = new ExpandoObject();
                    objtemp.MARKCODE       = com.string4Row(r, "code", "");
                    objtemp.SUBJECTCODE    = com.string4Row(r, "subjectcode", "");
                    objtemp.NAME           = com.string4Row(r, "name", "");
                    objtemp.COUNT          = com.int4Row(r, "sobai", 0);
                    objtemp.COUNTLEARNT    = com.int4Row(r, "sobaidahoc", 0);
                    objtemp.COUNTLEARNTYET = com.int4Row(r, "sobaichuahoc", 0);
                    objtemp.COURSECODE     = com.string4Row(r, "coursecode", "");

                    liMark.Add(objtemp);
                }
            }

            ret = bus.GetAllMark(ref ds, "MARKED", obj);
            bus.CloseConnection();
            List <dynamic> liMark2 = new List <dynamic>();

            if (ret >= 0)
            {
                foreach (DataRow r in ds.Tables["MARKED"].Rows)
                {
                    dynamic objtemp = new ExpandoObject();
                    objtemp.EXAMTIMECODE = com.string4Row(r, "examtimecode", "");
                    objtemp.NAME         = com.string4Row(r, "name", "");
                    objtemp.MARKMAX      = com.int4Row(r, "sodiem", 0);
                    objtemp.MARK10       = com.int4Row(r, "mark10", 0);
                    objtemp.MARKCODE     = com.string4Row(r, "code", "");
                    liMark2.Add(objtemp);
                }
            }
            //MARK_BUS busMark = new MARK_BUS();
            //List<MARK_OBJ> liMark = busMark.getAllBy2("subjectcode", new fieldpara("STUDENTCODE", ses.loginCode));

            //busMark.CloseConnection();
            //if (liMark == null)
            //{

            //    ses.gotoPage("/admin/login", "Chưa đăng nhập");
            //    return null;
            //}

            dynamic defaultobject = new ExpandoObject();

            defaultobject.thetype   = ses.loginType;
            defaultobject.name      = ses.loginFullName;
            defaultobject.code      = ses.loginCode;
            defaultobject.birthday  = com.date2String(obj.BIRTHDAY);
            defaultobject.address   = obj.ADDRESS;
            defaultobject.email     = obj.EMAIL;
            defaultobject.tel       = obj.TEL;
            defaultobject.limark    = liMark;
            defaultobject.codeview  = obj.CODEVIEW;
            defaultobject.khoa      = obj.LOCK;
            defaultobject.note      = obj.NOTE;
            defaultobject.sex       = obj.SEX;
            defaultobject.classcode = obj.CLASSCODE;
            defaultobject.limark2   = liMark2;
            //defaultobject.defaulttab = "subject";

            ViewBag.defaultvalue = JsonConvert.SerializeObject(defaultobject);

            string[] jsx =
            {
                "/jsx/Core/Student/StudentPriorityAdd.jsx"
                , "/jsx/Core/Student/Studentpopup.jsx"
                , "/jsx/Admin/Changepass/Changepass.jsx"
                , "/jsx/Core/Student/Studentprofile.jsx"
            };

            //string[] jsx = {
            //    "/Jsx/_Shared/ButtonList.jsx"
            //    ,"/Jsx/_Shared/PopupSearch.jsx"
            //    ,"/Scripts/Ag-grid/ag-grid.js"
            //    ,"/Jsx/_Shared/AgGrid.jsx"
            //    ,"/Jsx/_Shared/TabHeader.jsx"//Phụ trách hiển thị các tab
            //    ,"/jsx/Profile/List1.jsx"
            //    ,"/jsx/subject/subject/Subjectpopup.jsx"
            //    ,"/jsx/subject/course/CourseList.jsx"
            //    ,"/jsx/subject/course/Coursepopup.jsx"
            //    ,"/jsx/Profile/ProfileApp.jsx"//Tạo khai báo tab
            //};

            ViewBag.jsx = jsx;
            return(View("Adminindex"));
        }