示例#1
0
        public int UpdateStudentAmount(string coursecode)
        {
            var        ret    = 0;
            COURSE_BUS bus    = new COURSE_BUS();
            var        course = bus.GetByID(new COURSE_OBJ.BusinessObjectID(coursecode));

            if (course == null)
            {
                ret = -1;
                bus.CloseConnection();
                return(ret);
            }
            // tính số sinh viên của lớp học
            MARK_BUS markBus = new MARK_BUS();
            var      liMark  = markBus.getAllBy2("CODE", new fieldpara("COURSECODE", coursecode, 0),
                                                 new fieldpara("UNiVERSITYCODE", _ses.gUNIVERSITYCODE, 0));

            if (liMark != null)
            {
                course.STUDENTAMOUNT = liMark.Count;
                ret = bus.Update(course);
            }
            markBus.CloseConnection();
            bus.CloseConnection();
            return(ret);
        }
示例#2
0
        /// <summary>
        /// update danh sách sinh viên lớp môn học
        /// </summary>
        /// <param name="listStudentCode">danh sách mã sinh viên</param>
        /// <param name="coursecode">mã lớp môn học</param>
        /// <param name="subjectcode">Môn học</param>
        /// <returns></returns>
        public JsonResult UpdateStudentCourse(List <string> listStudentCode, string coursecode, string subjectcode)
        {
            int             ret        = 0;
            MARK_BUS        busMark    = new MARK_BUS();
            List <MARK_OBJ> liMark     = new List <MARK_OBJ>();
            MARK_OBJ        midMarkObj = new MARK_OBJ();
            //gennextcode to define first code to gennextcode for other  n list
            string markCode = busMark.genNextCode(midMarkObj);

            if (listStudentCode == null)
            {
                ret = -1;
            }
            else
            {
                foreach (var studentCode in listStudentCode)
                {
                    MARK_OBJ objMark = new MARK_OBJ {
                        CODE = markCode
                    };
                    markCode               = busMark.GenNextCode(objMark, markCode); //gán giá trị code đầu tiên cho giá trị mặc định sinh được tiến hành gán lại giá trị mặc định mặc gennextcode của đối tượng hiện tại
                    objMark.LOCKDATE       = DateTime.Now;
                    objMark.CODEVIEW       = objMark.CODEVIEW;
                    objMark.COURSECODE     = coursecode;
                    objMark.STUDENTCODE    = studentCode;
                    objMark.SUBJECTCODE    = subjectcode;
                    objMark.LOCK           = 0;
                    objMark.EDITTIME       = DateTime.Now; // thời điểm sửa bản ghi
                    objMark.EDITUSER       = _ses.loginCode;
                    objMark.UNIVERSITYCODE = _ses.gUNIVERSITYCODE;
                    liMark.Add(objMark);
                }
            }
            //Tạo phiên làm việc, thực hiện trong trường hợp có nhiều thao tác với cơ sở dữ liệu,
            //yêu cầu khi thực hiện nhiều hơn một lệnh có thay đổi dữ liệu phải gọi phương thức này.
            busMark.BeginTransaction();
            if (ret >= 0)
            {
                ret = busMark.InsertMultiItems(liMark);
                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()
                    busMark.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
                    busMark.CommitTransaction();
                }
            }
            busMark.CloseConnection();
            return(Json(new
            {
                ret
            }, JsonRequestBehavior.AllowGet));
        }
示例#3
0
        /// <summary>
        /// lấy mark theo mã sinh viên và mã khóa học
        /// </summary>
        /// <param name="coursecode"></param>
        /// <returns></returns>
        public JsonResult GetByStudentCourse(string coursecode)
        {
            string   studentcode = _ses.loginCode;
            MARK_BUS bus         = new MARK_BUS();
            var      data        = bus.GetByKey(new fieldpara("STUDENTCODE", studentcode, 0),
                                                new fieldpara("COURSECODE", coursecode, 0),
                                                new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0));

            bus.CloseConnection();
            return(Json(new { data }, JsonRequestBehavior.AllowGet));
        }
示例#4
0
        /// <summary>
        /// Lây ra lấy ra mã sinh viên được chỉ định trong bảng điểm của một lớp môn học
        /// </summary>
        /// <param name="studentcode">mã sinh viên</param>
        /// <param name="coursecode">mã lớp môn học</param>
        /// <returns></returns>
        public JsonResult GetMarkCode(string studentcode, string coursecode)
        {
            MARK_BUS markbus = new MARK_BUS();
            MARK_OBJ obj     = markbus.GetByKey(new fieldpara("STUDENTCODE", studentcode, 0),
                                                new fieldpara("COURSECODE", coursecode, 0));

            markbus.CloseConnection();
            var jsonResult = Json(new
            {
                obj,    //Danh sách
                ret = 0 //ok
            }, JsonRequestBehavior.AllowGet);

            jsonResult.MaxJsonLength = int.MaxValue;
            return(jsonResult);
        }
示例#5
0
        /// <summary>
        /// get danh sách tất cả các sinh viên, trừ các sinh viên đã được thêm vào lớp học
        /// </summary>
        /// <param name="coursecode">mã lớp học</param>
        /// <param name="classcode">mã lớp</param>
        /// <returns></returns>
        public JsonResult GetAllStudent(string coursecode, string classcode)
        {
            // danh sách mã sinh viên đã tham gia vào course
            List <string>    listStudentCode = new List <string>();
            MARK_BUS         bus             = new MARK_BUS();
            List <fieldpara> lipa            = new List <fieldpara>();

            if (!string.IsNullOrEmpty(coursecode))
            {
                lipa.Add(new fieldpara("COURSECODE", coursecode, 0));
            }
            lipa.Add(new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0));
            lipa.Add(new fieldpara("EDUCATIONLEVELCODE", "DH", 0));
            List <MARK_OBJ> liStudentCourse = bus.getAllBy2("STUDENTCODE", lipa.ToArray());

            foreach (var studentcourse in liStudentCourse)
            {
                listStudentCode.Add(studentcourse.STUDENTCODE);
            }
            // danh sách tất cả các sinh viên
            STUDENT_BUS busStudent = new STUDENT_BUS();
            var         liStudent  = busStudent.getAllBy2("CODE", new fieldpara("CLASSCODE", classcode, 0),
                                                          new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0),
                                                          new fieldpara("EDUCATIONLEVELCODE", "DH", 0));
            var count = 0;

            if (listStudentCode.Count > 0)
            {
                for (int i = 0; i < liStudent.Count; i++)
                {
                    if (listStudentCode.Contains(liStudent[i].CODE))
                    {
                        liStudent.RemoveAt(i);
                        i--;
                    }
                }
            }
            var data = JsonConvert.SerializeObject(liStudent);

            busStudent.CloseConnection();
            bus.CloseConnection();
            return(Json(new
            {
                data,//Danh sách
                count
            }, JsonRequestBehavior.AllowGet));
        }
        /// <summary>
        /// thêm dữ liệu vào bảng examhallstudent :
        /// </summary>
        /// <param name="listStudentCode"></param>
        /// <param name="examTimeCode"></param>
        /// <param name="courseCode"></param>
        /// <param name="parentCode"></param>
        /// <returns></returns>

        public JsonResult Insert(List<string> listStudentCode, string examTimeCode, string courseCode)
        {
            int ret = 0;
            if (listStudentCode != null)
            {
                EXAMHALLSTUDENT_BUS bus = new EXAMHALLSTUDENT_BUS();
                foreach (var studentCode in listStudentCode)
                {
                    MARK_BUS markBus = new MARK_BUS();
                    MARK_OBJ markObj = markBus.GetByKey(
                        new fieldpara("STUDENTCODE", studentCode, 0),
                        new fieldpara("COURSECODE", courseCode, 0),
                        new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0)
                     );
                    if (markObj == null)
                        ret = -1;
                    else
                    {
                        // kiểm tra đã tồn tại bản ghi có markcode và coursecode truyền vào chưa
                        EXAMHALLSTUDENT_OBJ obj = bus.GetByKey(
                                        new fieldpara("MARKCODE", markObj.CODE, 0),
                                        new fieldpara("COURSECODE", courseCode, 0),
                                        new fieldpara("EXAMTIMECODE", examTimeCode, 0),
                                        new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0)
                        );
                        if (obj != null)
                        {
                            ret = -2;
                            return Json(new { ret }, JsonRequestBehavior.AllowGet);
                        }
                        EXAMHALLSTUDENT_OBJ objTemp = new EXAMHALLSTUDENT_OBJ();
                        objTemp.CODE = bus.genNextCode(objTemp);
                        objTemp.MARKCODE = markObj.CODE;
                        objTemp.COURSECODE = courseCode;
                        objTemp.EXAMTIMECODE = examTimeCode;
                        objTemp.LOCK = 0;
                        objTemp.EDITTIME = DateTime.Now;
                        objTemp.EDITUSER = _ses.loginCode;
                        objTemp.UNIVERSITYCODE = _ses.gUNIVERSITYCODE;
                        ret = bus.insert(objTemp);
                    }
                    markBus.CloseConnection();
                }
                bus.CloseConnection();
            }
            return Json(new { ret }, JsonRequestBehavior.AllowGet);
        }
        /// <summary>
        /// lấy danh sách sinh viên của lớp môn học, chưa được thêm vào đợt thi
        /// </summary>
        /// <param name="examtimeCode">mã đợt thi</param>
        /// <param name="courseCode">mã lớp môn học</param>
        /// <returns></returns>
        public JsonResult GetAllStudent(string examtimeCode, string courseCode)
        {
            var ret = 0;
            MARK_BUS markBus = new MARK_BUS();
            //lấy toàn bộ danh sách sinh viên trong một lớp môn học
            var liMark = markBus.getAllBy2(new fieldpara("COURSECODE", courseCode, 0),
                                           new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0));
            markBus.CloseConnection();
            EXAMHALLSTUDENT_BUS examBus = new EXAMHALLSTUDENT_BUS();
            var liExamHallStudent = examBus.getAllBy2(new fieldpara("EXAMTIMECODE", examtimeCode, 0),
                new fieldpara("COURSECODE", courseCode, 0),
                new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0));
            if (liMark == null && liExamHallStudent == null)
                ret = -1;
            else
            {
                foreach (var examHallStudent in liExamHallStudent)
                {
                    for (int i = 0; i < liMark.Count; i++)
                    {
                        var mark = liMark[i];
                        if (mark.CODE == examHallStudent.MARKCODE && mark.COURSECODE == examHallStudent.COURSECODE)
                        {
                            liMark.Remove(mark);
                            break;
                        }
                    }
                }
            }

            List<STUDENT_OBJ> liStudent = new List<STUDENT_OBJ>();
            if (liMark != null && liMark.Count > 0)
            {
                foreach (var mark in liMark)
                {
                    liStudent.Add(mark._STUDENTCODE);
                }
            }
            
            return Json(new { data = liStudent, ret = ret }, JsonRequestBehavior.AllowGet);
        }
示例#8
0
        public JsonResult delete(List <string> listCode)
        {
            int         ret = 0;
            STUDENT_BUS bus = new STUDENT_BUS();

            foreach (var id in listCode)
            {
                STUDENT_OBJ obj = bus.GetByID(new STUDENT_OBJ.BusinessObjectID(id));
                //Kiểm tra đối tượng còn trên srrver hay không
                if (obj == null)
                {
                    ret = -1;
                }
                //Kiểm tra thuộc đơn vị triển khai
                if (obj.UNIVERSITYCODE != ses.gUNIVERSITYCODE)
                {
                    ret = -4;
                }
                if (ret >= 0)
                {
                    MARK_BUS busMark = new MARK_BUS();
                    //kiểm tra sinh viên có trong lớp môn học nào không
                    ret = busMark.checkCode(null, new fieldpara("STUDENTCODE", id));
                    busMark.CloseConnection();
                    //exist children
                    if (ret != 0)
                    {
                        ret = -2;
                    }
                }
                if (ret >= 0)
                {
                    //xóa
                    ret = bus.delete(obj._ID);
                }
            }

            //close connection
            bus.CloseConnection();
            return(Json(new { ret = ret }, JsonRequestBehavior.AllowGet));
        }
        /// <summary>
        /// get danh sách các course của 1 sinh viên
        /// </summary>
        /// <returns></returns>
        public JsonResult GetByStudent()
        {
            var    ret         = 1;
            string studentcode = "";

            if (_ses.loginType.Equals("STUDENT"))
            {
                studentcode = _ses.loginCode;
            }
            else
            {
                ret = -1;
            }
            List <COURSE_OBJ> liCourse = null;

            if (ret >= 0)
            {
                MARK_BUS bus = new MARK_BUS();
                liCourse = new List <COURSE_OBJ>();
                List <fieldpara> lipa = new List <fieldpara>();
                if (!string.IsNullOrEmpty(studentcode))
                {
                    lipa.Add(new fieldpara("STUDENTCODE", studentcode, 0));
                }
                lipa.Add(new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0));
                var liMark = bus.getAllBy2("CODE", lipa.ToArray());
                if (liMark != null)
                {
                    foreach (var mark in liMark)
                    {
                        liCourse.Add(mark._COURSECODE);
                    }
                }
                bus.CloseConnection();
            }

            return(Json(new { data = liCourse, ret }, JsonRequestBehavior.AllowGet));
        }
示例#10
0
        public int ProcessExamFormAuto(string examtimecode, string coursecode, int testcount)
        {
            int ret = 0;
            //Lấy được đợt thi
            EXAMTIME_BUS        bus        = new EXAMTIME_BUS();
            EXAMTIME_OBJ        obj        = bus.GetByID(new EXAMTIME_OBJ.BusinessObjectID(examtimecode));
            EXAMFORM_BUS        busExamfom = new EXAMFORM_BUS();
            List <EXAMFORM_OBJ> liExamform = new List <EXAMFORM_OBJ>();

            bus.CloseConnection();
            if (obj == null)
            {
                ret = -1;
            }
            //Lấy được lớp học
            MARK_BUS        busMark = new MARK_BUS();
            List <MARK_OBJ> liMark  = busMark.getAllBy2(new fieldpara("COURSECODE", coursecode));

            busMark.CloseConnection();

            if (ret >= 0)
            {
                liExamform = CreateExamForm(obj, testcount, out ret);
            }
            EXAMFORMDETAIL_BUS        busExamformdetail = new EXAMFORMDETAIL_BUS();
            EXAMFORMDETAIL_OBJ        objExamformdetail = new EXAMFORMDETAIL_OBJ();
            List <EXAMFORMDETAIL_OBJ> liExamformdetail  = new List <EXAMFORMDETAIL_OBJ>();
            //Danh sách cấu trúc đề
            TESTSTRUCTDETAIL_BUS        busTeststructdetail = new TESTSTRUCTDETAIL_BUS();
            List <TESTSTRUCTDETAIL_OBJ> liTestStructDetail  = busTeststructdetail.getByTestStruct(obj.TESTSTRUCTCODE, _ses.gUNIVERSITYCODE);

            busTeststructdetail.CloseConnection();

            string currentCode = busExamformdetail.genNextCode(objExamformdetail);

            if (ret >= 0)
            {
                foreach (EXAMFORM_OBJ objtem in liExamform)
                {
                    ret = CreateExamFormDetail(ref liExamformdetail, objtem, liTestStructDetail, ref currentCode);
                    if (ret < 0)
                    {
                        break;
                    }
                }
            }
            //Gán sinh viên vào danh sách đề
            List <EXAMHALLSTUDENT_OBJ> liExamhallstudent  = new List <EXAMHALLSTUDENT_OBJ>();
            EXAMHALLSTUDENT_BUS        busExamhallstudent = new EXAMHALLSTUDENT_BUS();
            EXAMHALLSTUDENT_OBJ        objExamhallstudent = new EXAMHALLSTUDENT_OBJ();

            currentCode = busExamhallstudent.genNextCode(objExamhallstudent);
            int i = 0;

            //Thêm tất cả sinh viên
            foreach (MARK_OBJ objMar in liMark)
            {
                //Gán sinh viên vào examhall student
                objExamhallstudent              = new EXAMHALLSTUDENT_OBJ();
                objExamhallstudent.CODE         = currentCode;
                currentCode                     = busExamhallstudent.genNextCode(objExamhallstudent, currentCode);
                objExamhallstudent.COURSECODE   = coursecode;
                objExamhallstudent.EDITTIME     = DateTime.Now;
                objExamhallstudent.EDITUSER     = _ses.loginCode;
                objExamhallstudent.EXAMFORMCODE = liExamform[i % testcount].CODE;
                objExamhallstudent.EXAMTIMECODE = examtimecode;
                i++;
                objExamhallstudent.EXAMHALLCODE   = "";
                objExamhallstudent.MARKCODE       = objMar.CODE;
                objExamhallstudent.UNIVERSITYCODE = _ses.gUNIVERSITYCODE;
                liExamhallstudent.Add(objExamhallstudent);
            }
            if (ret >= 0)
            {
                busExamfom.BeginTransaction();
                busExamformdetail.setConnection(busExamfom);
                busExamhallstudent.setConnection(busExamfom);
                ret = busExamfom.InsertMultiItems(liExamform);
                if (ret >= 0)
                {
                    ret = busExamformdetail.InsertMultiItems(liExamformdetail);
                }
                if (ret >= 0)
                {
                    ret = busExamhallstudent.InsertMultiItems(liExamhallstudent);
                }
                if (ret >= 0)
                {
                    busExamfom.CommitTransaction();
                }
                else
                {
                    busExamfom.RollbackTransaction();
                }
            }
            busExamfom.CloseConnection();
            return(ret);
        }
示例#11
0
        /// <summary>
        /// Lấy ra chi tiết của một bài thi dựa vào mã sinh viên trong bảng điểm lớp môn học và mã học kì
        /// </summary>
        /// <param name="markcode">mã sinh viên trong lớp môn học</param>
        /// <param name="examtimecode">mã học kì </param>
        /// <returns></returns>
        public JsonResult GetDetailExam(string markcode, string examtimecode)
        {
            if (string.IsNullOrEmpty(markcode))
            {
                markcode = "1708310001";
            }
            int ret            = 0;
            int numberQuestion = 0;


            MARK_BUS markbus = new MARK_BUS();
            MARK_OBJ objmark = markbus.GetByID(new MARK_OBJ.BusinessObjectID(markcode));//markbus.GetByKey(new fieldpar("STUDENTCODE", _ses.loginCode, 0),new fieldpara("COURSECODE", courseCode, 0));

            markbus.CloseConnection();
            if (objmark == null)
            {
                ret = -7;
            }
            EXAMHALLSTUDENT_OBJ obj = new EXAMHALLSTUDENT_OBJ();

            if (ret >= 0)
            {
                EXAMHALLSTUDENT_BUS bus = new EXAMHALLSTUDENT_BUS();
                if (objmark != null)
                {
                    obj = bus.GetByKey(new fieldpara("MARKCODE", objmark.CODE, 0),
                                       new fieldpara("examtimecode", examtimecode));
                }
                bus.CloseConnection();
            }
            //Lấy được một lần thi
            if (obj == null)
            {
                ret = -1;
            }
            EXAMFORM_BUS busExamform = new EXAMFORM_BUS();
            EXAMFORM_OBJ objExamform = null;

            //Lấy đề thi
            if (ret >= 0)
            {
                if (obj != null)
                {
                    objExamform = busExamform.GetByID((new EXAMFORM_OBJ.BusinessObjectID(obj.EXAMFORMCODE)));
                }
                busExamform.CloseConnection();
                if (objExamform == null)
                {
                    ret = -2;
                }
            }
            //Danh sachs cau truc
            EXAMFORMDETAIL_BUS        busExamformdetail = new EXAMFORMDETAIL_BUS();
            List <EXAMFORMDETAIL_OBJ> liExamformdetail  = new List <EXAMFORMDETAIL_OBJ>();

            if (ret >= 0)
            {
                if (objExamform != null)
                {
                    liExamformdetail = busExamformdetail.getAllBy2("THEORDER", new fieldpara("EXAMFORMCODE", objExamform.CODE));
                }
                busExamformdetail.CloseConnection();
                if (liExamformdetail == null)
                {
                    ret = -3;
                }
            }
            List <fieldpara> lipa   = new List <fieldpara>();
            List <jointable> lijoin = new List <jointable>();
            //Lay danh sach cac nhom cau hoi
            QUESTIONGROUP_BUS        busQuestiongroup = new QUESTIONGROUP_BUS();
            List <QUESTIONGROUP_OBJ> liQuestiongroup  = new List <QUESTIONGROUP_OBJ>();

            if (ret >= 0)
            {
                if (objExamform != null)
                {
                    lijoin.Add(new jointable(typeof(EXAMFORMDETAIL_OBJ), "CODE", "QUESTIONGROUPCODE", new fieldpara("EXAMFORMCODE", objExamform.CODE)));
                }
                liQuestiongroup = busQuestiongroup.getAllBy2("CODE", lipa, lijoin);
                if (liQuestiongroup == null)
                {
                    ret = -4;
                }
                busQuestiongroup.CloseConnection();
            }
            //Lay danh sach cau hoi
            QUESTION_BUS        busQuestion        = new QUESTION_BUS();
            List <QUESTION_OBJ> listQuestionreturn = new List <QUESTION_OBJ>();

            if (ret >= 0)
            {
                lijoin.Clear();
                if (objExamform != null)
                {
                    lijoin.Add(new jointable(typeof(EXAMFORMDETAIL_OBJ), "QUESTIONGROUPCODE", "QUESTIONGROUPCODE",
                                             new fieldpara("examformcode", objExamform.CODE)));
                }
                var liQuestion = busQuestion.getAllBy2("CODE", lipa, lijoin);
                if (liQuestion == null)
                {
                    ret = -5;
                }
                else
                {
                    foreach (var objQuestion in liQuestion)
                    {
                        QUESTION_OBJ objTemp = new QUESTION_OBJ();
                        objTemp.CODE               = objQuestion.CODE;
                        objTemp.ANSWERCODE         = null;
                        objTemp.CONTENT            = objQuestion.CONTENT;
                        objTemp.QUESTIONGROUPCODE  = objQuestion.QUESTIONGROUPCODE;
                        objTemp._QUESTIONGROUPCODE = objQuestion._QUESTIONGROUPCODE;
                        objTemp._ID = objQuestion._ID;
                        listQuestionreturn.Add(objTemp);
                    }
                    numberQuestion = liQuestion.Count;
                }
                busQuestion.CloseConnection();
            }
            //Lay danh danh cac dap an
            ANSWER_BUS        busAnswer = new ANSWER_BUS();
            List <ANSWER_OBJ> liAnswer  = new List <ANSWER_OBJ>();

            if (ret >= 0)
            {
                lijoin.Clear();
                if (objExamform != null)
                {
                    lijoin.Add((new jointable(typeof(EXAMFORMDETAIL_OBJ), "QUESTIONGROUPCODE", "QUESTIONGROUPCODE",
                                              new fieldpara("examformcode", objExamform.CODE))));
                }
                liAnswer = busAnswer.getAllBy2("CODE", lipa, lijoin);
                if (liAnswer == null)
                {
                    ret = -6;
                }
                busAnswer.CloseConnection();
            }
            //get list exam result in case student lost the internet
            EXAMRESULT_BUS        busExamresult = new EXAMRESULT_BUS();
            List <EXAMRESULT_OBJ> liExamresult  = new List <EXAMRESULT_OBJ>();

            if (ret >= 0)
            {
                if (obj != null)
                {
                    liExamresult = busExamresult.getAllBy2(new fieldpara("examhallstudentcode", obj.CODE));
                }
                busExamresult.CloseConnection();
            }
            var jsonResult = Json(new
            {
                numberQuestion,                        //so luong cau hoi
                ObjexamHallstudent = obj,              //examhallstudent code
                ObjexamForm        = objExamform,      //examform
                liExamformDetail   = liExamformdetail, //Danh sách examdetail
                liQuestiongroup,                       //danh sach nhom cau hoi
                li_question = listQuestionreturn,      //danh sach cac cau hoi
                li_answer   = liAnswer,                //danh sach tat ca cac cau tra loi
                liExamresult,                          //danh sach tat ca cac dap an da tra loi cu sinh vien
                ret                                    //ok
            }, JsonRequestBehavior.AllowGet);

            jsonResult.MaxJsonLength = int.MaxValue;
            return(jsonResult);
        }
示例#12
0
        /// <summary>
        /// logic: truyền vào coursecode và examtimecode
        /// từ coursecode và examtimecode -> tìm được examhallstudent tương ứng -> lấy ra được examformcode chính là đề thi mà sinh viên đó làm
        /// lấy ra danh sách các nhóm câu hỏi của đề thi đấy (dữ liệu trong bảng examformdetail)
        /// lấy danh sách các câu hỏi
        /// </summary>
        /// <param name="coursecode">mã lớp môn học</param>
        /// <param name="examtimecode"></param>
        /// <returns></returns>
        public JsonResult ShowExamResult(string coursecode, string examtimecode)
        {
            if (string.IsNullOrEmpty(coursecode))
            {
                coursecode = "1708310001";
            }
            if (string.IsNullOrEmpty(examtimecode))
            {
                examtimecode = "1712250004";
            }
            var    ret         = 0;
            string studentcode = "";
            List <QUESTION_OBJ>       liQuestion       = null;
            List <ANSWER_OBJ>         liAnswer         = null;
            List <EXAMRESULT_OBJ>     liExamresult     = null;
            EXAMFORM_OBJ              objExamform      = null;
            List <EXAMFORMDETAIL_OBJ> liExamformdetail = null;
            List <QUESTIONGROUP_OBJ>  liQuestiongroup  = null;
            int numberQuestion = 0; // số câu hỏi
            EXAMHALLSTUDENT_OBJ examhallstudentObj = new EXAMHALLSTUDENT_OBJ();

            if (_ses.loginType.Equals("STUDENT"))
            {
                studentcode = _ses.loginCode;
            }
            else
            {
                ret = -1;
            }
            if (ret >= 0)
            {
                List <fieldpara> lipa = new List <fieldpara>();
                // get mark
                MARK_BUS markBus = new MARK_BUS();
                lipa.Add(new fieldpara("STUDENTCODE", studentcode, 0));
                lipa.Add(new fieldpara("COURSECODE", coursecode, 0));
                lipa.Add(new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0));
                var mark = markBus.GetByKey(lipa.ToArray());
                markBus.CloseConnection();
                if (mark != null)
                {
                    EXAMHALLSTUDENT_BUS bus = new EXAMHALLSTUDENT_BUS();
                    examhallstudentObj = bus.GetByKey(new fieldpara("MARKCODE", mark.CODE, 0),
                                                      new fieldpara("EXAMTIMECODE", examtimecode));
                    bus.CloseConnection();
                    if (examhallstudentObj != null)
                    {
                        // lấy đề thi
                        EXAMFORM_BUS busExamform = new EXAMFORM_BUS();
                        objExamform = busExamform.GetByID((new EXAMFORM_OBJ.BusinessObjectID(examhallstudentObj.EXAMFORMCODE)));
                        busExamform.CloseConnection();
                        if (objExamform != null)
                        {
                            // lấy danh sách chi tiết đề thi
                            EXAMFORMDETAIL_BUS busExamformdetail = new EXAMFORMDETAIL_BUS();
                            liExamformdetail = busExamformdetail.getAllBy2("THEORDER", new fieldpara("EXAMFORMCODE", objExamform.CODE));
                            busExamformdetail.CloseConnection();
                            if (liExamformdetail != null)
                            {
                                lipa = new List <fieldpara>();
                                List <jointable> lijoin = new List <jointable>();
                                //Lay danh sach cac nhom cau hoi
                                QUESTIONGROUP_BUS busQuestiongroup = new QUESTIONGROUP_BUS();
                                lijoin.Add(new jointable(typeof(EXAMFORMDETAIL_OBJ), "CODE", "QUESTIONGROUPCODE",
                                                         new fieldpara("EXAMFORMCODE", objExamform.CODE)));
                                liQuestiongroup = busQuestiongroup.getAllBy2("CODE", lipa, lijoin);
                                busQuestiongroup.CloseConnection();
                                if (liQuestiongroup != null)
                                {
                                    //Lay danh sach cau hoi
                                    QUESTION_BUS busQuestion = new QUESTION_BUS();
                                    lijoin.Clear();
                                    lijoin.Add(new jointable(typeof(EXAMFORMDETAIL_OBJ), "QUESTIONGROUPCODE",
                                                             "QUESTIONGROUPCODE", new fieldpara("examformcode", objExamform.CODE)));
                                    liQuestion     = busQuestion.getAllBy2("CODE", lipa, lijoin);
                                    numberQuestion = liQuestion.Count;
                                    busQuestion.CloseConnection();
                                    // lấy danh sách các câu trả lời
                                    lijoin.Clear();
                                    ANSWER_BUS busAnswer = new ANSWER_BUS();
                                    lijoin.Add(new jointable(typeof(EXAMFORMDETAIL_OBJ), "QUESTIONGROUPCODE",
                                                             "QUESTIONGROUPCODE", new fieldpara("examformcode", objExamform.CODE)));
                                    liAnswer = busAnswer.getAllBy2("CODE", lipa, lijoin);
                                    busAnswer.CloseConnection();
                                    // lấy danh sách kết quả thi của sinh vên đó
                                    EXAMRESULT_BUS busExamresult = new EXAMRESULT_BUS();
                                    liExamresult = busExamresult.getAllBy2(new fieldpara("examhallstudentcode",
                                                                                         examhallstudentObj.CODE));
                                    busExamresult.CloseConnection();
                                    if (liAnswer == null || liExamresult == null)
                                    {
                                        ret = -7;
                                    }
                                }
                                else
                                {
                                    ret = -6;
                                }
                            }
                            else
                            {
                                ret = -5;
                            }
                        }
                        else
                        {
                            ret = -4;
                        }
                    }
                    else
                    {
                        ret = -3;
                    }
                }
                else
                {
                    ret = -2;
                }
            }
            else
            {
                ret = -1;
            }
            var jsonResult = Json(new
            {
                numberQuestion,                          //so luong cau hoi
                ObjexamHallstudent = examhallstudentObj, //examhallstudent code
                ObjexamForm        = objExamform,        //examform
                liExamformDetail   = liExamformdetail,   //Danh sách examdetail
                liQuestiongroup,
                li_question   = liQuestion,
                li_answer     = liAnswer,
                li_examresult = liExamresult,//danh sách đáp án
                ret
            }, JsonRequestBehavior.AllowGet);

            jsonResult.MaxJsonLength = int.MaxValue;
            return(jsonResult);
        }
示例#13
0
        /// <summary>
        /// xóa 1 couse , kiểm tra xem có các bản ghi con phụ thuộc hay không trước khi xóa
        /// </summary>
        /// <param name="code"></param>
        /// <returns></returns>

        public JsonResult Delete(List <string> code)
        {
            //cho phep xoa hay khong
            //ret= -2 ;//sử dụng trong trường hợp xóa đơn một bản ghi có tham chiếu
            // ret= 0 : không có gì để xóa
            //ret = 1: //xóa thành công
            //ret= -3 : Bản ghi hiện tại không còn trong hệ thống, truy cập trái phép
            COURSE_BUS       busCourse = new COURSE_BUS();
            List <fieldpara> lipa      = new List <fieldpara>();
            MARK_BUS         busMark   = new MARK_BUS();
            var ret = 0;
            List <COURSE_OBJ.BusinessObjectID> deleteList = new List <COURSE_OBJ.BusinessObjectID>();

            foreach (string item in code)
            {
                var course = busCourse.GetByID(new COURSE_OBJ.BusinessObjectID(item));
                //check xem course co ton tai ban ghi phu thuoc nao khong
                if (course == null)
                {
                    ret = -3;
                    return(Json(new
                    {
                        ret
                    }, JsonRequestBehavior.AllowGet));
                }
                lipa.Clear();
                lipa.Add(new fieldpara("COURSECODE", item, 0));
                lipa.Add(new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0));
                //kiểm tra xem có bản ghi con hay không
                //checkcode sẽ trả về là 0 nếu không có con
                // nhiều hơn 0 tức là tồn tại bản ghi con
                // nhỏ hơn 0 tức là lỗi hệ thống
                var marks = busMark.checkCode(null, lipa.ToArray());
                //cho phép xóa thì nhét vào list xóa không thì không cho phép xóa nhưng cũng không cần thông báo
                //vì có trường hợp xóa nhiều bản ghi và chỉ xóa 1 bản ghi nên cần xác định rõ trước khi xóa một bản ghi cha nào đó thì có tồn tại liên kết đến bản ghi con hay không
                //bad request
                if (marks < 0)
                {
                    ret = -3;
                    return(Json(new
                    {
                        ret
                    }, JsonRequestBehavior.AllowGet));
                }
                //add to delete list
                if (marks == 0)
                {
                    deleteList.Add(course._ID);
                }
            }
            //nếu phần tử nằm trong danh sách xóa có thì sẽ phải xóa
            //xóa 1 bản ghi và trong trường hợp muốn xóa đơn lẻ
            //mà bản ghi đưa vào không có ràng buộc bản ghi con
            //có 1 bản ghi và bản ghi đó không được phép xóa
            if (code.Count == 1 && deleteList.Count < 1)
            {
                ret = -2;
            }
            //còn đây là trường hợp xóa nhiều, cứ thông báo là xóa thành công là xong
            //mặc dù còn có các bản ghi không được xóa còn có tham chiếu nhưng không nên thông báo quá chi tiết
            if (deleteList.Count >= 1)
            {
                //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
                busCourse.BeginTransaction();
                ret = busCourse.DeletetMultiItems(deleteList);
                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()
                    busCourse.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
                    busCourse.CommitTransaction();
                }
            }

            busMark.CloseConnection();
            busCourse.CloseConnection();
            return(Json(new
            {
                ret
            }, JsonRequestBehavior.AllowGet));
        }
示例#14
0
        /// <summary>
        /// xóa sinh viên của lớp môn học
        /// cho phep xoa hay khong
        /// ret= -2 ;//sử dụng trong trường hợp xóa đơn một bản ghi có tham chiếu
        /// ret= 0 : không có gì để xóa
        /// ans = 1: //xóa thành công
        /// ret= -3 : Bản ghi hiện tại không còn trong hệ thống, truy cập trái phép
        /// </summary>
        /// <param name="listStudentCode">danh sách mã sinh viên</param>
        /// <param name="coursecode">mã lớp môn học</param>
        /// <returns></returns>
        public JsonResult DeleteStudentCourse(List <string> listStudentCode, string coursecode)
        {
            int ret = 0;
            EXAMHALLSTUDENT_BUS busExam = new EXAMHALLSTUDENT_BUS();
            List <fieldpara>    lipa    = new List <fieldpara>();
            MARK_BUS            busMark = new MARK_BUS();
            List <MARK_OBJ.BusinessObjectID> deleteListId = new List <MARK_OBJ.BusinessObjectID>();

            //kiểm tra tất cả các item đưa vào xem có con hay không
            foreach (var item in listStudentCode)
            {
                var mark = busMark.GetByID(new MARK_OBJ.BusinessObjectID(item));
                //check xem subject có còn tồn tại trong hệ thống hay không
                if (mark == null)
                {
                    ret = -3;
                    return(Json(new
                    {
                        ret
                    }, JsonRequestBehavior.AllowGet));
                }
                // ** chú ý: nếu muốn xóa nhiều bản ghi thì cần phải clear lipa trước khi sử dụng nó lại
                lipa.Clear();
                lipa.Add(new fieldpara("MARKCODE", item, 0));
                lipa.Add(new fieldpara("COURSECODE", coursecode, 0));
                lipa.Add(new fieldpara("UNIVERSITYCODE", _ses.gUNIVERSITYCODE, 0));
                //checkcode sẽ trả về là 0 nếu không có con
                // nhiều hơn 0 tức là tồn tại bản ghi con
                // nhỏ hơn 0 tức là lỗi hệ thống
                var exams = busExam.checkCode(null, lipa.ToArray());
                //nếu không có con thì cho vào danh sách xóa
                //tức là checkcode sẽ trả về là số lượng bản ghi con phụ thuộc
                //bad request
                if (exams < 0)
                {   //nếu mà gặp lỗi thì thoát luôn không cần xóa gì nữa
                    ret = -3;
                    return(Json(new
                    {
                        ret
                    }, JsonRequestBehavior.AllowGet));
                }
                if (exams == 0)
                {
                    //add to delete list
                    deleteListId.Add(mark._ID);
                }
            }
            //nếu phần tử nằm trong danh sách xóa có thì sẽ phải xóa
            //xóa 1 bản ghi và trong trường hợp muốn xóa đơn lẻ mà bản ghi đưa vào không tồn tại con
            ////có 1 bản ghi và bản ghi đó không được phép xóa
            if (listStudentCode.Count == 1 && deleteListId.Count < 1)
            {
                //không cho xóa 1 bản ghi
                ret = -2;
            }

            //còn đây là trường hợp xóa nhiều, cứ thông báo là xóa thành công là xong
            //mặc dù còn có các bản ghi không được xóa còn có tham chiếu nhưng không nên thông báo quá chi tiết
            if (deleteListId.Count >= 1)
            {
                //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
                busMark.BeginTransaction();
                ret = busMark.DeletetMultiItems(deleteListId);
                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()
                    busMark.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
                    busMark.CommitTransaction();
                }
            }
            //close all connection

            busExam.CloseConnection();
            busMark.CloseConnection();
            return(Json(new
            {
                ret
            }, JsonRequestBehavior.AllowGet));
        }