Ejemplo n.º 1
0
        /// <summary>
        ///     获取考试的基本信息
        /// </summary>
        /// <param name="examUserID">考试人员ID</param>
        /// <param name="type">0:独立的考试</param>
        /// <returns></returns>
        public ExampaperShow GetExampaperBaseInforShow(int examUserID, int type = 0)
        {
            var exampaper = new ExampaperShow();                                //new 试卷对象
            var examuser  = Etdb.GetSingleByID <tbExamSendStudent>(examUserID); //单个考生考试信息
            //var exam = new tbExampaper();
            tbExampaper exam = null;
            //var examination = new tbExamination(); //考试分类对象
            tbExamination examination = null;

            exam = Etdb.GetSingleByID <tbExampaper>(examuser.ExamPaperID); //试卷对象
            if (type == 0)
            {
                examination = Etdb.GetSingleByID <tbExamination>(examuser.RelationID);
            }
            exampaper.ExampaperType       = exam.ExamType;
            exampaper.QuestionTypeStrShow = exam.QuestionTypeOrder.GetQuestionTypeStr();
            //获取试题
            if (examination != null)
            {
                GetExampaper(exampaper, exam, examuser, examination);
            }
            else
            {
                GetExampaper(exampaper, exam, examuser);
            }
            //初始化学员答案
            exampaper.QuestionList.ForEach(p => exampaper.StudentAnswer.Add(new StudentAnswer
            {
                Answer = p.UserAnswer,
                Qid    = p.QuestionID,
                QType  = p.QType
            }));
            return(exampaper);
        }
Ejemplo n.º 2
0
        /// <summary>
        ///     考试详细
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        public ActionResult ExaminationDetail(int Id)
        {
            tbExamination exam = _examinationBL.GetExamination(Id);

            if (exam != null)
            {
                exam.ExamBeginTime  = exam.ExamBeginTime.ToLocalTime();
                exam.ExamEndTime    = exam.ExamEndTime.ToLocalTime();
                exam.LastUpdateTime = exam.LastUpdateTime.ToLocalTime();

                string ApprovalUserIds = exam.ApprovalUser == null
                                             ? ""
                                             : exam.ApprovalUser.Aggregate("", (current, id) => current + (id + ","));
                if (!string.IsNullOrEmpty(ApprovalUserIds))
                {
                    ApprovalUserIds = ApprovalUserIds.Remove(ApprovalUserIds.Length - 1);
                }
                tbExampaper paper = _exampaperBL.GetExampaper(exam.PaperID);
                if (paper != null)
                {
                    ViewBag.PaperName = paper.ExampaperTitle;
                }
                ViewData["personids"] = string.Join(",",
                                                    _examinationBL.GettbExamSendAllStudent(Id)
                                                    .Select(p => p.UserID)
                                                    .Distinct());
                ViewBag.ApprovalUserIds = ApprovalUserIds;
            }
            else
            {
                exam        = new tbExamination();
                ViewBag.Msg = "对不起,该考试不存在或已被删除!";
            }
            return(View(exam));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 我的年度培训目标
        /// </summary>
        /// <param name="userid"></param>
        /// <param name="bentime"></param>
        /// <param name="endtime"></param>
        /// <param name="totalcount"></param>
        /// <param name="startIndex"></param>
        /// <param name="startLength"></param>
        /// <param name="Order"></param>
        /// <param name="where"></param>
        /// <returns></returns>
        public List <Co_CourseShow> GetMyCourse(int userid, int year, int way, out int totalcount, int startIndex = 0, int startLength = int.MaxValue, string Order = "asc", string where = "1=1")
        {
            var list = new List <Co_CourseShow>();

            list       = way == 1 ? _userDB.GetMyCourse(userid, year, startIndex, startLength, Order, where) : _userDB.GetMyVidioCourse(userid, year, startIndex, startLength, Order, where);
            totalcount = list.Count > 0 ? list[0].totalcount : 0;
            for (int i = 0; i < list.Count; i++)
            {
                if (list[i].CoPaperID > 0 && list[i].PaperId > 0)
                {
                    tbExamSendStudent exam = new tbExamSendStudent();
                    if (list[i].Way == 2)
                    {
                        exam = _ExamDB.GetExamSendStudentBySQL2008(list[i].Id, userid, list[i].CoPaperID, list[i].PaperId, 2);
                    }
                    else
                    {
                        exam = _ExamDB.GetExamSendStudentBySQL2008(list[i].Id, userid, list[i].CoPaperID, list[i].PaperId, 1);
                    }
                    list[i].GetexamScore = exam == null?0:exam.StudentAnswerList.Sum(pa => pa.GetScore);
                    tbExampaper paper = _paperDB.GetExampaper(list[i].PaperId);
                    list[i].ExamScore = paper.ExampaperScore;
                }
                else
                {
                    list[i].GetexamScore = 0;
                    list[i].ExamScore    = 0;
                }
            }
            return(list);
        }
Ejemplo n.º 4
0
        /// <summary>
        ///     新增或修改考试
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        public ActionResult EditExamination(int?Id)
        {
            var exam = new tbExamination();

            if (Id.HasValue)
            {
                exam = _examinationBL.GetExamination(Id.Value);
                if (exam != null)
                {
                    exam.ExamBeginTime  = exam.ExamBeginTime.ToLocalTime();
                    exam.ExamEndTime    = exam.ExamEndTime.ToLocalTime();
                    exam.LastUpdateTime = exam.LastUpdateTime.ToLocalTime();
                }
            }
            string ApprovalUserIds = exam.ApprovalUser == null
                                         ? ""
                                         : exam.ApprovalUser.Aggregate("", (current, id) => current + (id + ","));

            if (!string.IsNullOrEmpty(ApprovalUserIds))
            {
                ApprovalUserIds = ApprovalUserIds.Remove(ApprovalUserIds.Length - 1);
            }
            if (exam != null)
            {
                tbExampaper paper = _exampaperBL.GetExampaper(exam.PaperID);
                if (paper != null)
                {
                    ViewBag.PaperName = paper.ExampaperTitle;
                }
            }

            ViewBag.ApprovalUserIds = ApprovalUserIds;
            return(View(exam));
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 添加培训班考试
        /// </summary>
        /// <returns></returns>
        public ActionResult AddClassExam(int classId)
        {
            var classmodel = _classManager.GetTrTrainClassById(classId);
            List <Tr_TrainClassToExam> examList = _classManager.GetTrainClassToExams(classId);

            if (!examList.Any())
            {
                examList = new List <Tr_TrainClassToExam>();
            }
            else
            {
                foreach (var exam in examList)
                {
                    if (exam.ExamID > 0)
                    {
                        tbExamination model = _examinationBL.GetExamination(exam.ExamID);
                        tbExampaper   paper = _exampaperBL.GetExampaper(model.PaperID);
                        exam.PaperID         = model.PaperID;
                        exam.Papername       = paper != null ? paper.ExampaperTitle : "";
                        exam.TestTimes       = model.TestTimes;
                        exam.RadomOrderFlag  = model.RadomOrderFlag;
                        exam.PassScore       = model.PassScore;
                        exam.ApprovalUserIds = model.ApprovalUser == null
                            ? ""
                            : model.ApprovalUser.GetString(defaultValue: "");
                    }
                }
            }
            ViewBag.classId    = classId;
            ViewBag.weightType = classmodel.WeightType;
            return(View(examList));
        }
Ejemplo n.º 6
0
 /// <summary>
 ///     根据ID修改单个实体
 /// </summary>
 /// <returns></returns>
 public bool UpdateExampaper(tbExampaper tbE)
 {
     try
     {
         MongoCollection <tbExampaper> coll = BaseDB.CreateInstance().GetCollection <tbExampaper>("tbExampaper");
         tbExampaper exam = coll.FindOne(Query.EQ("_id", tbE._id));
         tbE.UserID = exam.UserID;
         coll.Remove(Query.EQ("_id", tbE._id));
         coll.Insert(tbE);
         return(true);
     }
     catch
     {
         return(false);
     }
     finally
     {
         BaseDB.MongoService.Disconnect();
     }
 }
Ejemplo n.º 7
0
        ///// <summary>
        ///// 添加试卷冗余(通过试卷)
        ///// </summary>
        ///// <param name="exampaper">试卷</param>
        ///// <returns></returns>
        //public int InsertExampaperRedundancy(tbExampaper exampaper)
        //{
        //    tbExampaperRedundancy model = new tbExampaperRedundancy
        //    {
        //        ExampaperId = exampaper._id,
        //        Description = exampaper.Description,
        //        Distribution = exampaper.Distribution,
        //        ExamSortID = exampaper.ExamSortID,
        //        TrainDetailId = exampaper.TrainDetailId,
        //        UserID = exampaper.UserID,
        //        CreateTime = exampaper.CreateTime,
        //        ExampaperAvailable = exampaper.ExampaperAvailable,
        //        ExampaperOpen = exampaper.ExampaperOpen,
        //        ExampaperScore = exampaper.ExampaperScore,
        //        ExampaperTitle = exampaper.ExampaperTitle,
        //        ExamType = exampaper.ExamType,
        //        LastUpdateTime = exampaper.LastUpdateTime,
        //        QuestionList = exampaper.QuestionList,
        //        QuestionRule = exampaper.QuestionRule,
        //        QuestionTypeOrder = exampaper.QuestionTypeOrder,
        //        Realname = exampaper.Realname,
        //        Status = exampaper.Status,
        //        TenantId = exampaper.TenantId
        //    };
        //    return EDB.Insert(model);
        //}

        ///// <summary>
        ///// 添加试卷冗余(通过试卷ID)
        ///// </summary>
        ///// <param name="exampaperId">试卷ID</param>
        ///// <returns></returns>
        //public int InsertExampaperRedundancy(int exampaperId)
        //{
        //    tbExampaper exampaper = EDB.GetSingleById<tbExampaper>(exampaperId);
        //    tbExampaperRedundancy model = new tbExampaperRedundancy
        //    {
        //        ExampaperId = exampaper._id,
        //        Description = exampaper.Description,
        //        Distribution = exampaper.Distribution,
        //        ExamSortID = exampaper.ExamSortID,
        //        TrainDetailId = exampaper.TrainDetailId,
        //        UserID = exampaper.UserID,
        //        CreateTime = exampaper.CreateTime,
        //        ExampaperAvailable = exampaper.ExampaperAvailable,
        //        ExampaperOpen = exampaper.ExampaperOpen,
        //        ExampaperScore = exampaper.ExampaperScore,
        //        ExampaperTitle = exampaper.ExampaperTitle,
        //        ExamType = exampaper.ExamType,
        //        LastUpdateTime = exampaper.LastUpdateTime,
        //        QuestionList = exampaper.QuestionList,
        //        QuestionRule = exampaper.QuestionRule,
        //        QuestionTypeOrder = exampaper.QuestionTypeOrder,
        //        Realname = exampaper.Realname,
        //        Status = exampaper.Status,
        //        TenantId = exampaper.TenantId
        //    };
        //    return EDB.Insert(model);
        //}



        /// <summary>
        /// 添加试卷冗余(通过试卷ID)
        /// </summary>
        /// <param name="exampaperId">试卷ID</param>
        /// <param name="oldExampaperRedundancyId">已冗余ID  【如果未冗余过,则传0】</param>
        /// <returns></returns>
        public int InsertExampaperRedundancy(int exampaperId, int oldExampaperRedundancyId)
        {
            if (oldExampaperRedundancyId > 0)
            {
                var old = EDB.GetSingleById <tbExampaperRedundancy>(oldExampaperRedundancyId);
                if (old.ExampaperId == exampaperId)
                {
                    return(oldExampaperRedundancyId);
                }

                tbExampaper exampaper = EDB.GetSingleById <tbExampaper>(exampaperId);

                var coll = MongoPooledConnection.WriteDatabase.GetCollection("tbExampaperRedundancy");
                coll.Remove(Query.And(new[] { Query.EQ("_id", oldExampaperRedundancyId) }), WriteConcern.Acknowledged);

                int seq = MongoBaseMethod.GetSeqence("SeqencetbExampaperRedundancy");
                tbExampaperRedundancy model = new tbExampaperRedundancy
                {
                    _id                = seq,
                    ExampaperId        = exampaper._id,
                    Description        = exampaper.Description,
                    Distribution       = exampaper.Distribution,
                    ExamSortID         = exampaper.ExamSortID,
                    TrainDetailId      = exampaper.TrainDetailId,
                    UserID             = exampaper.UserID,
                    CreateTime         = exampaper.CreateTime,
                    ExampaperAvailable = exampaper.ExampaperAvailable,
                    ExampaperOpen      = exampaper.ExampaperOpen,
                    ExampaperScore     = exampaper.ExampaperScore,
                    ExampaperTitle     = exampaper.ExampaperTitle,
                    ExamType           = exampaper.ExamType,
                    LastUpdateTime     = exampaper.LastUpdateTime,
                    QuestionList       = exampaper.QuestionList,
                    QuestionRule       = exampaper.QuestionRule,
                    QuestionTypeOrder  = exampaper.QuestionTypeOrder,
                    Realname           = exampaper.Realname,
                    Status             = exampaper.Status,
                    TenantId           = exampaper.TenantId
                };
                coll.Insert(model, WriteConcern.Acknowledged);
                return(seq);
            }

            var exampap      = EDB.GetSingleById <tbExampaper>(exampaperId);
            var tbExampaperR = new tbExampaperRedundancy
            {
                ExampaperId        = exampap._id,
                Description        = exampap.Description,
                Distribution       = exampap.Distribution,
                ExamSortID         = exampap.ExamSortID,
                TrainDetailId      = exampap.TrainDetailId,
                UserID             = exampap.UserID,
                CreateTime         = exampap.CreateTime,
                ExampaperAvailable = exampap.ExampaperAvailable,
                ExampaperOpen      = exampap.ExampaperOpen,
                ExampaperScore     = exampap.ExampaperScore,
                ExampaperTitle     = exampap.ExampaperTitle,
                ExamType           = exampap.ExamType,
                LastUpdateTime     = exampap.LastUpdateTime,
                QuestionList       = exampap.QuestionList,
                QuestionRule       = exampap.QuestionRule,
                QuestionTypeOrder  = exampap.QuestionTypeOrder,
                Realname           = exampap.Realname,
                Status             = exampap.Status,
                TenantId           = exampap.TenantId
            };

            return(EDB.Insert(tbExampaperR));
        }
Ejemplo n.º 8
0
 /// <summary>
 /// 修改试卷
 /// </summary>
 /// <param name="model">试卷</param>
 /// <returns></returns>
 public bool UpdateExampaper(tbExampaper model)
 {
     return(EDB.UpdateExampaper(model));
 }
Ejemplo n.º 9
0
        /// <summary>
        /// 培训班课程
        /// </summary>
        /// <returns></returns>
        public ActionResult AddClassCourse(int classId)
        {
            var classmodel = _classManager.GetTrTrainClassById(classId);
            List <Tr_TrainClassToCourse> courseList = _classManager.GetTrainClassToCourses(classId);

            if (courseList.Count > 0)
            {
                foreach (var course in courseList)
                {
                    course.resourceLsit = _classManager.GetTrainClassToCourseResources(course.ID);
                    course.contentLsit  = _classManager.GetTrainClassToCourseContents(course.ID);
                    course.checkLsit    = _classManager.GetTrainClassToCourseChecks(course.ID);
                    if (!course.resourceLsit.Any())
                    {
                        course.resourceLsit = new List <Tr_TrainClassToCourseResource>();
                    }
                    if (!course.contentLsit.Any())
                    {
                        course.contentLsit = new List <Tr_TrainClassToCouseContent>();
                    }
                    if (!course.checkLsit.Any())
                    {
                        course.checkLsit = new List <Tr_TrainClassToCouseCheck>();
                    }
                }
            }
            else
            {
                courseList = new List <Tr_TrainClassToCourse>();
            }

            ViewBag.classId     = classId;
            ViewBag.weightType  = classmodel.WeightType;
            ViewBag.CourseModel = courseList;

            //return View(courseList);


            /*
             *
             * return View(examList);
             */

            List <Tr_TrainClassToExam> examList = _classManager.GetTrainClassToExams(classId);

            if (!examList.Any())
            {
                examList = new List <Tr_TrainClassToExam>();
            }
            else
            {
                foreach (var exam in examList)
                {
                    if (exam.ExamID > 0)
                    {
                        tbExamination model = _examinationBL.GetExamination(exam.ExamID);
                        tbExampaper   paper = _exampaperBL.GetExampaper(model.PaperID);
                        exam.PaperID         = model.PaperID;
                        exam.Papername       = paper != null ? paper.ExampaperTitle : "";
                        exam.TestTimes       = model.TestTimes;
                        exam.RadomOrderFlag  = model.RadomOrderFlag;
                        exam.PassScore       = model.PassScore;
                        exam.ApprovalUserIds = model.ApprovalUser == null
                            ? ""
                            : model.ApprovalUser.GetString(defaultValue: "");
                    }
                }
            }
            ViewBag.ExamModel = examList;


            List <Tr_TrainClassToPractical> practList = _classManager.GetTrainClassToPracticals(classId);

            if (!practList.Any())
            {
                practList = new List <Tr_TrainClassToPractical>();
            }
            //return View(practList);
            ViewBag.PractModel = practList;

            return(View());
        }
Ejemplo n.º 10
0
        public ActionResult ClassView(int classId)
        {
            Tr_TrainClass model = _classManager.GetTrTrainClassById(classId);

            //课程
            List <Tr_TrainClassToCourse> courseList = _classManager.GetTrainClassToCourses(classId);

            if (courseList.Count > 0)
            {
                foreach (var course in courseList)
                {
                    course.resourceLsit = _classManager.GetTrainClassToCourseResources(course.ID);
                    course.contentLsit  = _classManager.GetTrainClassToCourseContents(course.ID);
                    course.checkLsit    = _classManager.GetTrainClassToCourseChecks(course.ID);
                    if (!course.resourceLsit.Any())
                    {
                        course.resourceLsit = new List <Tr_TrainClassToCourseResource>();
                    }
                    if (!course.contentLsit.Any())
                    {
                        course.contentLsit = new List <Tr_TrainClassToCouseContent>();
                    }
                    if (!course.checkLsit.Any())
                    {
                        course.checkLsit = new List <Tr_TrainClassToCouseCheck>();
                    }
                }
            }
            else
            {
                courseList = new List <Tr_TrainClassToCourse>();
            }
            //考试
            List <Tr_TrainClassToExam> examList = _classManager.GetTrainClassToExams(classId);

            if (!examList.Any())
            {
                examList = new List <Tr_TrainClassToExam>();
            }
            else
            {
                foreach (var exam in examList)
                {
                    if (exam.ExamID > 0)
                    {
                        tbExamination emodel = _examinationBL.GetExamination(exam.ExamID);
                        tbExampaper   paper  = _exampaperBL.GetExampaper(emodel.PaperID);
                        exam.PaperID         = emodel.PaperID;
                        exam.Papername       = paper != null ? paper.ExampaperTitle : "";
                        exam.TestTimes       = emodel.TestTimes;
                        exam.RadomOrderFlag  = emodel.RadomOrderFlag;
                        exam.PassScore       = emodel.PassScore;
                        exam.ApprovalUserIds = emodel.ApprovalUser == null
                            ? ""
                            : emodel.ApprovalUser.GetString(defaultValue: "");
                    }
                }
            }
            //考评
            List <Tr_TrainClassToPractical> practList = _classManager.GetTrainClassToPracticals(classId);

            if (!practList.Any())
            {
                practList = new List <Tr_TrainClassToPractical>();
            }
            var maxbatch       = _planManager.GetMaxBatch(classId, 1);
            var approvelist    = _planManager.GeTrPlanApproveList(classId, 1, maxbatch).OrderBy(p => p.Step);
            var newApprovelist = new List <Tr_PlanApproveList>();
            var flag           = false;

            foreach (var approve in approvelist)
            {
                if (!flag)
                {
                    if (approve.ApproveStatus == 0)
                    {
                        flag = true;
                        newApprovelist.Add(approve);
                    }
                    else
                    {
                        newApprovelist.Add(approve);
                    }
                }
            }
            ViewBag.approvelist = newApprovelist;

            List <Tr_TrainClassToUser> userlist = _classManager.GetClassToUsers(classId);

            ViewBag.UserIds = userlist.Select(p => p.UserId).GetString();

            ViewBag.Courses    = courseList;
            ViewBag.Exams      = examList;
            ViewBag.Practicals = practList;
            return(View(model));
        }
Ejemplo n.º 11
0
        /// <summary>
        ///     根据 考生考试关联ID 获取考生答题详情
        /// </summary>
        /// <returns></returns>
        public JsonResult GetReStudentExamAnswerByExamUserId(int examUserId)
        {
            tbExamSendStudent examSendStudent = _examinationBL.GetExamSendStudent(examUserId);
            ExamBaseInforShow exam            = _examTestBL.GetExamBaseInforShow(examUserId);
            tbExampaper       examPaper       = _exampaperBL.GetExampaper(examSendStudent.ExamPaperID);
            var itemArray = new object[examSendStudent.StudentAnswerList.Count];
            int n         = 0;

            string questionTypeHtml = "";
            int    q1Count          = examSendStudent.StudentAnswerList.Count(q => q.QType == 1);
            int    q2Count          = examSendStudent.StudentAnswerList.Count(q => q.QType == 2);
            int    q3Count          = examSendStudent.StudentAnswerList.Count(q => q.QType == 3);
            int    q4Count          = examSendStudent.StudentAnswerList.Count(q => q.QType == 4);
            int    q5Count          = examSendStudent.StudentAnswerList.Count(q => q.QType == 5);
            int    q6Count          = examSendStudent.StudentAnswerList.Count(q => q.QType == 6);

            questionTypeHtml += q1Count > 0 ? "<span>问答题 ( " + q1Count + " )</span>" : "";
            questionTypeHtml += q2Count > 0 ? "<span>单选题 ( " + q2Count + " )</span>" : "";
            questionTypeHtml += q3Count > 0 ? "<span>多选题 ( " + q3Count + " )</span>" : "";
            questionTypeHtml += q4Count > 0 ? "<span>判断题 ( " + q4Count + " )</span>" : "";
            questionTypeHtml += q5Count > 0 ? "<span>填空题 ( " + q5Count + " )</span>" : "";
            questionTypeHtml += q6Count > 0 ? "<span>多媒体题 ( " + q6Count + " )</span>" : "";

            string answerCaseHtml = "";

            answerCaseHtml += "<span>答错: " + examSendStudent.StudentAnswerList.Count(p => p.GetScore == 0 && p.Answer != "") + "</span>";
            answerCaseHtml += "<span>未答: " + examSendStudent.StudentAnswerList.Count(p => p.Answer == "") + "</span>";
            answerCaseHtml += "<span>正确: " + examSendStudent.StudentAnswerList.Count(p => p.GetScore > 0) + "</span>";
            int totalScore = 0;

            foreach (ReStudentExamAnswer item in examSendStudent.StudentAnswerList)
            {
                //根据Qid 查Question表
                tbQuestion question        = _questionBL.GetSingleByID(item.Qid);
                string     multi_mediaHtml = "";
                if (question.QuestionType == 6)
                {
                    string name = question.FileUpload[0].FileName;
                    switch (question.FileUpload[0].FileType)
                    {
                    case 0:
                    {
                        multi_mediaHtml = "    <table class='all80 cen'>" +
                                          "<tr>" +
                                          "<td class='all20' align='center' valign='middle'>" +
                                          " <a id='k-prev' style='position:relative;' onclick='turnToNext(this,\"left\");' ></a>" +
                                          "</td>" +
                                          "<td id='imageCollection' align='center' style='height: 300px;'>" +
                                          "<input type='hidden' value='1' />";
                        for (int i = 0; i < question.FileUpload.Count; i++)
                        {
                            multi_mediaHtml += "<img src='../../ClientBin/UploadFile/" +
                                               question.FileUpload[i].FileName +
                                               "' style='width:250px; height:250px; " +
                                               (i == 0 ? " display:block; " : " display:none; ") + "' />";
                        }
                        multi_mediaHtml += "     </td>" +
                                           "<td class='all20' align='center' valign='middle'>" +
                                           "<a id='k-next' style='position:relative;' onclick='turnToNext(this,\"right\");' ></a>" +
                                           "</td>" +
                                           "</tr>" +
                                           "</table>";
                    }
                    break;

                    case 1:
                    {
                        multi_mediaHtml +=
                            @"<embed class='mLeft_2' src='../../Scripts/mp3player/player.swf?url=../../ClientBin/UploadFile/" + name + "&amp;autoplay=0;autostart=0' type='application/x-shockwave-flash' wmode='transparent'  allowscriptaccess='always' height='25' width='400'></embed>";
                    }
                    break;

                    case 2:
                    {
                        var id = name.Substring(0, name.Length - 4);
                        multi_mediaHtml +=
                            @"<input name='FlvName' value='" + name +
                            @"' type='hidden' /><div class='mLeft_2'><div id='" + id + "'></div></div>";
                    }
                    break;
                    }
                }

                ReStudentExamAnswer reStuExamAnswer =
                    examSendStudent.StudentAnswerList.Where(a => a.Qid == item.Qid).FirstOrDefault();
                string qUserAnswerHtml  = "";
                string qRightAnswerHtml = "";
                switch (item.QType)
                {
                case 1:
                    qUserAnswerHtml  = "<p><textarea class='Boxarea all60' disabled='disabled'>" + item.Answer + "</textarea></p>";
                    qRightAnswerHtml = question.QuestionAnswer[0].Answer;
                    break;

                case 2:
                case 3:
                    foreach (QuestionAnswer itemQueAnswer in question.QuestionAnswer.OrderBy(q => q.Order))
                    {
                        qRightAnswerHtml += itemQueAnswer.AnswerFlag == 1
                                                    ? (qRightAnswerHtml == ""
                                                           ? ((char)(itemQueAnswer.Order + 64)).ToString()
                                                           : (". " + ((char)(itemQueAnswer.Order + 64))))
                                                    : "";

                        qUserAnswerHtml += " <p><input disabled='disabled' type='" +
                                           (item.QType == 2 ? "radio" : "checkbox") + "'" +
                                           (("," + item.Answer + ",").IndexOf("," + itemQueAnswer.Order + ",") >= 0
                                                    ? "checked='checked'"
                                                    : "") + "name='answer_" + question._id + "' />" +
                                           ((char)(itemQueAnswer.Order + 64)) + ". " + itemQueAnswer.Answer + "</p>";
                    }
                    break;

                case 4:
                    qRightAnswerHtml = question.QuestionAnswer[0].Answer == "0" ? "A. 正确" : "B. 错误";
                    // 判断题
                    qUserAnswerHtml = "<p><input disabled='disabled' type='radio' name='answer_" + question._id +
                                      "'" + (item.Answer == "0" ? "checked='checked'" : "") +
                                      "/>A. 正确</p> <p><input disabled='disabled' type='radio' name='answer_" +
                                      question._id + "'" + (item.Answer == "1" ? "checked='checked'" : "") +
                                      " />B. 错误</p>";
                    break;

                case 5:
                    qRightAnswerHtml = question.QuestionAnswer[0].Answer.Replace("!!%%!!", " ");
                    // 填空题
                    qUserAnswerHtml = " <p>学员答案:" + (item.Answer.Replace("##**##", " ")) + "</p>";

                    break;

                case 6:
                    int type = question.QuestionAnswer[0].AnswerType;
                    if (type == 0)
                    {
                        qRightAnswerHtml = question.QuestionAnswer[0].Answer;
                        //  问答题
                        qUserAnswerHtml = "<p><textarea class='Boxarea all60' disabled='disabled'>" + (item.Answer) +
                                          "</textarea></p>";
                    }
                    else
                    {
                        //单选题
                        foreach (QuestionAnswer an in question.QuestionAnswer.OrderBy(p => p.Order))
                        {
                            qRightAnswerHtml += an.AnswerFlag == 1
                                                        ? (qRightAnswerHtml == ""
                                                               ? ((char)(an.Order + 64)).ToString()
                                                               : (". " + ((char)(an.Order + 64))))
                                                        : "";
                            qUserAnswerHtml += " <p><input disabled='disabled' type='" +
                                               (type == 1 ? "radio" : "checkbox") + "'" +
                                               (("," + item.Answer + ",").IndexOf("," + an.Order + ",") >= 0
                                                        ? "checked=checked"
                                                        : "") + " name='answer_" + question._id + "' />" +
                                               ((char)(an.Order + 64)) + ". " + (an.Answer) + "</p>";
                        }
                    }

                    break;

                default:
                    break;
                }
                var temp = new
                {
                    item.Qid,
                    QOrder          = item.Order,
                    QuestionContent = "<h5>" + question.QuestionContent + "</h5><div class='db'>" + multi_mediaHtml + "</div>",
                    UserAnswer      = qUserAnswerHtml,
                    QuestionAnswer  = qRightAnswerHtml,
                    UserGetScore    = reStuExamAnswer.GetScore,
                    QuestionScore   = item.Score
                };
                totalScore  += reStuExamAnswer.GetScore;
                itemArray[n] = temp;
                n++;
            }

            return
                (Json(
                     new
            {
                result = 1,
                dataList = itemArray.ToList(),
                questionTypeHtml,
                answerCaseHtml,
                examTitle = exam.ExamTitle,
                totalScore
            }, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 12
0
 /// <summary>
 ///     添加试卷
 /// </summary>
 /// <param name="question"></param>
 /// <returns></returns>
 public int InsertExampaper(tbExampaper sort)
 {
     return(EDB.Insert(sort));
 }
Ejemplo n.º 13
0
 /// <summary>
 /// 添加试卷
 /// </summary>
 /// <param name="model">试卷</param>
 /// <returns></returns>
 public int InsertExampaper(tbExampaper model)
 {
     return(EDB.Insert(model));
 }
Ejemplo n.º 14
0
        /// <summary>
        ///     获取我的考试
        /// </summary>
        /// <param name="examName">考试名称</param>
        /// <param name="type">0:未开始;1:进行中;2:已结束;3:已过期</param>
        /// <param name="passflag">当type==2时,0:全部;1:通过;2:不通过</param>
        /// <param name="pageSize">每页显示的个数</param>
        /// <param name="pageIndex">当前页</param>
        /// <returns></returns>
        public JsonResult GetMyExamTestList(string examName = "", int type = 0, int passflag = 0, int pageSize = 20,
                                            int pageIndex   = 1)
        {
            //获取我的考试信息
            List <tbExamSendStudent> myTotalExamList = ExamTestBL.GetMyExamList(Session["userID"].StringToInt32());
            //相关的考试
            List <tbExamination> examlist = ExaminationBL.GetAllExamination(myTotalExamList.Select(p => p.RelationID));
            //相关的试卷
            List <tbExampaper> paperList = ExampaperBL.GetAllExampaper(examlist.Select(p => p.PaperID));

            //筛选后的我的考试
            var myExamListShow = new List <ExamTestShow>();

            myTotalExamList.ForEach(p =>
            {
                var exam = examlist.FirstOrDefault(pa => pa._id == p.RelationID);
                if (exam != null && exam.PublishedFlag == 1)
                {
                    tbExampaper paper = paperList.FirstOrDefault(pa => pa._id == exam.PaperID);
                    if (paper != null)
                    {
                        var toscore = paper.ExamType == 0 ? paper.QuestionList.Sum(pc => pc.QScore) : paper.ExampaperScore;
                        if (toscore > 0)
                        {
                            myExamListShow.Add(new ExamTestShow
                            {
                                ExamUserID      = p._id,
                                ExampaperID     = exam.PaperID,
                                ExampaperSortID = paper.ExamSortID,
                                ExamTitle       = exam.ExaminationTitle,
                                EndTime         = exam.ExamEndTime.ToLocalTime(),
                                ExamLength      = exam.ExamLength,
                                ExamTestTimes   = p.TestTimes + "/" + exam.TestTimes,
                                ExamScore       =
                                    exam.PercentFlag == 0
                                                                   ? (exam.PassScore + "/100")
                                                                   : (Convert.ToInt32(toscore * exam.PassScore / 100) + "/" + toscore),
                                PassFlag = exam.PublishResult == 1 ? p.IsPass : 3,
                                //未发布成绩时3
                                ScoreOrder = exam.PublishResult == 1 ? "-" : "--",
                                //未发布成绩时"--",否则"-"
                                StartTime    = exam.ExamBeginTime.ToLocalTime(),
                                DoExamStatus = p.DoExamStatus,
                                ExamID       = p.RelationID,
                                GetScore     =
                                    exam.PublishResult == 1
                                                                   ? (exam.PercentFlag == 0
                                                                          ? (p.StudentAnswerList.Sum(pa => pa.GetScore) *
                                                                             100 / toscore + "")
                                                                          : (p.StudentAnswerList.Sum(pa => pa.GetScore) +
                                                                             ""))
                                                                   : "--",
                                pFlag = passflag
                            });
                        }
                    }
                }
            });
            myExamListShow = myExamListShow.Where(p => p.ExamTitle.Contains(examName) && type == p.examStatus).ToList();

            IEnumerable <ExamTestShow> myExam =
                myExamListShow.OrderByDescending(p => p.ExamUserID).Skip((pageIndex - 1) * pageSize).Take(pageSize);


            //所有的参考人员
            var allExamUser = new List <tbExamSendStudent>();

            if (type == 1 || type == 2)
            {
                IEnumerable <int> examLists = myExam.ToList().Select(p => p.ExamID);
                allExamUser = ExamTestBL.GetExamSendStudentList(examLists);
            }

            foreach (ExamTestShow exam in myExam)
            {
                if (type == 0 || type == 3)
                {
                    exam.ScoreOrder = "--";
                }
                else
                {
                    int score =
                        allExamUser.FirstOrDefault(p => p._id == exam.ExamUserID).StudentAnswerList.Sum(p => p.GetScore);
                    int order =
                        allExamUser.Count(
                            p => p.RelationID == exam.ExamID && p.StudentAnswerList.Sum(pa => pa.GetScore) > score);
                    exam.ScoreOrder = exam.ScoreOrder == "-" ? (order + 1).ToString() : "--";
                }
            }

            return(Json(new { result = 1, dataList = myExam.ToList(), recordCount = myExamListShow.Count },
                        JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 15
0
        /// <summary>
        ///     添加试卷&&修改试卷
        /// </summary>
        //[Filter.SystemLog("保存或修改试卷", LogLevel.Info)]
        public JsonResult SubmitExampaer()
        {
            int    id        = Convert.ToInt32(Request.QueryString["id"]);
            int    sID       = Convert.ToInt32(Request.Form["Sortid"]);
            string desum     = Request.Form["desum"];
            string typeorder = Request.Form["typeorder"];

            typeorder = typeorder.Remove(typeorder.LastIndexOf(","), 1);
            int examType = Convert.ToInt32(Request.Form["examType"]);
            int qp1      = 0;
            int qp2      = 0;
            int qp3      = 0;
            int qp4      = 0;
            int qp5      = 0;
            int qp6      = 0;
            //添加试卷问题
            var    paperquestion = new List <ReExampaperQuestion>();
            var    rulequestion  = new List <ReRuleQuestion>();
            string questionID    = Request.Form["Queid"];

            if (!string.IsNullOrEmpty(questionID))
            {
                questionID = questionID.Remove(questionID.LastIndexOf(","), 1);
                string[] qIDlist = questionID.Split(',');
                string[] tolist  = typeorder.Split(',');

                if (examType < 1)
                {
                    int abc = 1;
                    for (int i = 0; i < tolist.Length; i++)
                    {
                        for (int j = 0; j < qIDlist.Length; j++)
                        {
                            string[] qid = qIDlist[j].Split('|');
                            if (tolist[i] == qid[1])
                            {
                                var pq = new ReExampaperQuestion();
                                pq.Qid   = Convert.ToInt32(qid[0]);
                                pq.QType = Convert.ToInt32(qid[1]);
                                string Scoreid = "Score" + qid[0];
                                pq.QOrder = abc;
                                pq.QScore = Convert.ToInt32(Request.Form[Scoreid]);
                                paperquestion.Add(pq);
                                abc++;
                            }
                        }
                    }
                }
                else
                {
                    for (int e = 0; e < tolist.Length; e++)
                    {
                        for (int s = 0; s < qIDlist.Length; s++)
                        {
                            var      pq       = new ReRuleQuestion();
                            string[] rulelist = qIDlist[s].Split('|');
                            if (tolist[e] == rulelist[0])
                            {
                                pq.QLevelStr = "1:" + rulelist[3] + ";2:" + rulelist[4] + ";3:" + rulelist[5];
                                pq.QScore    = Convert.ToInt32(rulelist[2]);
                                pq.QSort     = Convert.ToInt32(rulelist[1]);
                                pq.Qtype     = Convert.ToInt32(rulelist[0]);
                                rulequestion.Add(pq);
                                switch (Convert.ToInt32(rulelist[0]))
                                {
                                case 1:
                                    qp1 += Convert.ToInt32(rulelist[3]) + Convert.ToInt32(rulelist[4]) +
                                           Convert.ToInt32(rulelist[5]);
                                    break;

                                case 2:
                                    qp2 += Convert.ToInt32(rulelist[3]) + Convert.ToInt32(rulelist[4]) +
                                           Convert.ToInt32(rulelist[5]);
                                    break;

                                case 3:
                                    qp3 += Convert.ToInt32(rulelist[3]) + Convert.ToInt32(rulelist[4]) +
                                           Convert.ToInt32(rulelist[5]);
                                    break;

                                case 4:
                                    qp4 += Convert.ToInt32(rulelist[3]) + Convert.ToInt32(rulelist[4]) +
                                           Convert.ToInt32(rulelist[5]);
                                    break;

                                case 5:
                                    qp5 += Convert.ToInt32(rulelist[3]) + Convert.ToInt32(rulelist[4]) +
                                           Convert.ToInt32(rulelist[5]);
                                    break;

                                case 6:
                                    qp6 += Convert.ToInt32(rulelist[3]) + Convert.ToInt32(rulelist[4]) +
                                           Convert.ToInt32(rulelist[5]);
                                    break;
                                }
                            }
                        }
                    }
                }
                if (examType > 0)
                {
                    if (qp1 > 0)
                    {
                        desum += "1:" + qp1 + ",";
                    }
                    if (qp2 > 0)
                    {
                        desum += "2:" + qp2 + ",";
                    }
                    if (qp3 > 0)
                    {
                        desum += "3:" + qp3 + ",";
                    }
                    if (qp4 > 0)
                    {
                        desum += "4:" + qp4 + ",";
                    }
                    if (qp5 > 0)
                    {
                        desum += "5:" + qp5 + ",";
                    }
                    if (qp6 > 0)
                    {
                        desum += "6:" + qp6 + ",";
                    }
                }
            }
            if (!string.IsNullOrEmpty(desum))
            {
                desum = desum.Remove(desum.LastIndexOf(","), 1);
            }
            else
            {
                desum = "";
            }
            if (id == 0)
            {
                //添加试卷
                int newid = EBL.InsertExampaper(new tbExampaper
                {
                    ExampaperTitle    = Request.Form["tbExamTitle"],
                    UserID            = CurrentUser == null ? 0 : CurrentUser.UserId,
                    ExamSortID        = sID,
                    ExamType          = examType,
                    QuestionTypeOrder = typeorder,
                    ExampaperScore    = Convert.ToInt32(Request.Form["question_sum"]),
                    LastUpdateTime    = DateTime.Now,
                    CreateTime        = DateTime.Now,
                    Description       = Request.Form["tbRemark"],
                    Distribution      = desum,
                    Status            = 0,
                    QuestionRule      = rulequestion,
                    QuestionList      = paperquestion
                });
                if (newid > 0)
                {
                    return(Json(new
                    {
                        result = 1,
                        content = "保存成功"
                    }, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    return(Json(new
                    {
                        result = 0,
                        content = "保存失败"
                    }, JsonRequestBehavior.AllowGet));
                }
            }
            else
            {
                //修改
                tbExampaper oldExam = EBL.GetExampaper(id);
                oldExam.ExampaperTitle    = Request.Form["tbExamTitle"];
                oldExam.UserID            = CurrentUser == null ? 0 : CurrentUser.UserId;
                oldExam.ExamSortID        = sID;
                oldExam.ExamType          = examType;
                oldExam.QuestionTypeOrder = typeorder;
                oldExam.ExampaperScore    = Convert.ToInt32(Request.Form["question_sum"]);
                oldExam.LastUpdateTime    = DateTime.Now;
                oldExam.Description       = Request.Form["tbRemark"];
                oldExam.Distribution      = desum;
                oldExam.QuestionRule      = rulequestion;
                oldExam.QuestionList      = paperquestion;
                bool newid = EBL.UpdateExampaper(oldExam);
                if (newid)
                {
                    return(Json(new
                    {
                        result = 1,
                        content = "保存成功"
                    }, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    return(Json(new
                    {
                        result = 0,
                        content = "保存失败"
                    }, JsonRequestBehavior.AllowGet));
                }
            }
        }
Ejemplo n.º 16
0
        /// <summary>
        ///     查看试卷呈现
        /// </summary>
        public ViewResult ExampaperDetail(int flag = 0)
        {
            int         id     = Convert.ToInt32(Request.QueryString["id"]);
            tbExampaper expape = EBL.GetExampaper(id);
            List <ReExampaperQuestion> questionList = expape.QuestionList;
            List <ReRuleQuestion>      ruleList     = expape.QuestionRule;

            var itemArray = new List <tbQuestion>();

            if (questionList.Count > 0)
            {
                //遍历试卷问题ID,获取题目
                foreach (ReExampaperQuestion Pquestion in questionList)
                {
                    tbQuestion baseInfor = qBL.GetSingleByID(Pquestion.Qid);
                    baseInfor.QuestionAnswer = baseInfor.QuestionAnswer.OrderByDescending(p => p.AnswerFlag).ToList();
                    itemArray.Add(baseInfor);
                }
            }

            var itemArray1 = new List <MExamRuleShow>();

            if (ruleList.Count > 0)
            {
                foreach (ReRuleQuestion qRule in ruleList)
                {
                    var eq = new MExamRuleShow();
                    eq.QuestingScore = qRule.QScore;
                    switch (qRule.Qtype)
                    {
                    case 1:     //问答题
                        eq.QuestionType = "问答题";
                        break;

                    case 2:     //单选题
                        eq.QuestionType = "单选题";
                        break;

                    case 3:     //多选题
                        eq.QuestionType = "多选题";
                        break;

                    case 4:     //判断题
                        eq.QuestionType = "判断题";
                        break;

                    case 5:     //填空题
                        eq.QuestionType = "填空题";
                        break;

                    case 6:     //情景题
                        eq.QuestionType = "情景题";
                        break;
                    }

                    tbQuestionSort qSort = qSortBL.GetSingleByID(qRule.QSort);
                    eq.QuestionSort = qSort.Title;
                    string[] questionLevel = qRule.QLevelStr.Split(';');
                    string[] Easy          = questionLevel[0].Split(':');
                    string[] Common        = questionLevel[1].Split(':');
                    string[] Hard          = questionLevel[2].Split(':');
                    eq.Leveleasy   = Convert.ToInt32(Easy[1]);
                    eq.Levelcommon = Convert.ToInt32(Common[1]);
                    eq.Levelhard   = Convert.ToInt32(Hard[1]);
                    string qit1 = qRule.Qtype + "|" + qRule.QSort;
                    string qit  = qRule.Qtype + "|" + qRule.QSort + "|" + qRule.QScore + "|" + Easy[1] + "|" + Common[1] +
                                  "|" + Hard[1];
                    eq.qita    = qit;
                    eq.qitaone = qit1;

                    itemArray1.Add(eq);
                }
            }

            if (Request.QueryString["sortID"] != null)
            {
                if (flag == 1)
                {
                    ViewData["fatherModel"] = eSortBL.GetAllExampaperSortDictionary().Keys.Contains(expape.ExamSortID)
                                                  ? eSortBL.GetAllExampaperSortDictionary()[expape.ExamSortID].Title
                                                  : "无";
                }
                else
                {
                    ViewData["fatherModel"] = Request.QueryString["SortID"] == "0"
                                                  ? Exampaper.NO
                                                  : eSortBL.GetAllExampaperSortDictionary()[
                        Convert.ToInt32(Request.QueryString["sortID"])].Title;
                }
            }
            else
            {
                ViewData["fatherModel"] = Exampaper.NO;
            }
            ViewData["expape"]         = expape;
            ViewData["expapeQuestion"] = itemArray;
            ViewData["expapeRule"]     = itemArray1;
            return(View());
        }
Ejemplo n.º 17
0
 /// <summary>
 ///     根据ID修改单个实体
 /// </summary>
 /// <returns></returns>
 public bool UpdateExampaper(tbExampaper tbE)
 {
     return(Modify(tbE));
 }
Ejemplo n.º 18
0
        /// <summary>
        /// 获取试卷的试题
        /// </summary>
        /// <param name="exampaper">试卷信息</param>
        /// <param name="exam">试卷信息</param>
        /// <param name="examuser">学员答案</param>
        public void GetExampaper(ExampaperShow exampaper, tbExampaper exam, tbExamSendStudent examuser)
        {
            if (exampaper.ExampaperType == 0)
            {
                #region 正常

                IMongoQuery       query  = Query.In("_id", new BsonArray(exam.QuestionList.Select(p => p.Qid)));
                List <tbQuestion> quList = Etdb.GetAllList <tbQuestion>(query); //获取试题
                exam.QuestionList.ForEach(p =>
                {
                    tbQuestion qu = quList.FirstOrDefault(q => q._id == p.Qid);
                    if (qu != null)
                    {
                        ReStudentExamAnswer an = examuser == null
                                                     ? null
                                                     : examuser.StudentAnswerList.FirstOrDefault(
                            pa => pa.Qid == p.Qid);
                        var newqu = new MQuestion
                        {
                            QAnswerType     = qu.QuestionAnswer[0].AnswerType,
                            QType           = qu.QuestionType,
                            QuestionContent = qu.QuestionContent,
                            QuestionID      = qu._id,
                            QuestionLevel   = ((QuestionLevel)qu.QuestionLevel).ToString(),
                            QuestionOrder   = p.QOrder,
                            Score           = p.QScore,
                            UserAnswer      = an == null ? "" : (an.Answer),
                            FillBlankCount  =
                                qu.QuestionContent.Split(new[] { "()" }, StringSplitOptions.None).Count() - 1
                        };
                        qu.QuestionAnswer.OrderBy(o => o.Order)
                        .ToList()
                        .ForEach(pa => newqu.QuestionAnswer.Add(new MQuestionAnswer
                        {
                            AnswerContent = pa.Answer,
                            AnswerFlag    = pa.AnswerFlag,
                            AnswerType    = pa.AnswerType,
                            Order         = pa.Order,
                            QuID          = newqu.QuestionID,
                            QType         = newqu.QType
                        }));
                        qu.FileUpload.ForEach(pa => newqu.FileUpload.Add(new QuestionFile
                        {
                            _fileName = pa.FileName,
                            _fileType = pa.FileType,
                            _realName = pa.RealName
                        }));
                        exampaper.QuestionList.Add(newqu);
                    }
                });

                #endregion
            }
            else
            {
                #region 随机

                List <tbQuestion> questionList = Etdb.GetAllList <tbQuestion>(Query.EQ("Status", 0));
                exam.QuestionRule.ForEach(p =>
                {
                    var newqulist = new List <tbQuestion>();
                    foreach (string s in p.QLevelStr.Split(';'))
                    {
                        newqulist.AddRange(
                            questionList.Where(
                                qu =>
                                p.QSort == qu.QuestionSortID && p.Qtype == qu.QuestionType &&
                                s.Split(':')[0].StringToInt32() == qu.QuestionLevel)
                            .ToList()
                            .RandomGetSome(s.Split(':')[1].StringToInt32()));
                    }
                    newqulist.ForEach(qu =>
                    {
                        var newqu = new MQuestion
                        {
                            QAnswerType     = qu.QuestionAnswer[0].AnswerType,
                            QType           = qu.QuestionType,
                            QuestionContent = qu.QuestionContent,
                            QuestionID      = qu._id,
                            QuestionLevel   = ((QuestionLevel)qu.QuestionLevel).ToString(),
                            QuestionOrder   = 0,
                            Score           = p.QScore,
                            UserAnswer      = "",
                            FillBlankCount  = qu.QuestionContent.Split(new[] { "()" }, StringSplitOptions.None).Count() - 1
                        };
                        qu.QuestionAnswer.OrderBy(o => o.Order)
                        .ToList()
                        .ForEach(pa => newqu.QuestionAnswer.Add(new MQuestionAnswer
                        {
                            AnswerContent = pa.Answer,
                            AnswerFlag    = pa.AnswerFlag,
                            AnswerType    = pa.AnswerType,
                            Order         = pa.Order,
                            QuID          = newqu.QuestionID,
                            QType         = newqu.QType
                        }));
                        qu.FileUpload.ForEach(pa => newqu.FileUpload.Add(new QuestionFile
                        {
                            _fileName = pa.FileName,
                            _fileType = pa.FileType,
                            _realName = pa.RealName
                        }));
                        exampaper.QuestionList.Add(newqu);
                    });
                });

                #endregion
            }
            //if (exampaper.ExampaperType == 1 || (examination._id > 0 && examination.RadomOrderFlag == 1))
            if (exampaper.ExampaperType == 1)
            {
                //排序
                int order = 1;
                foreach (string s in exam.QuestionTypeOrder.Split(','))
                {
                    exampaper.QuestionList.Where(p => p.QType == s.StringToInt32())
                    .ToList()
                    .RandomListOrder()
                    .ForEach(p =>
                    {
                        p.QuestionOrder = order;
                        order++;
                    });
                }
            }
            exampaper.QuestionList = exampaper.QuestionList.OrderBy(p => p.QuestionOrder).ToList();
        }
Ejemplo n.º 19
0
        public void SavePromotionWayPostList(out List <int> deleteIds, int promotionId, List <PromotionStage> list)
        {
            deleteIds = new List <int>();
            var _exampaperDB = new RetechWing.BusinessCommon.Examination.ExaminationCommonMethod();

            string where = string.Format(" Ab_PromotionStage.IsDelete = 0 and Ab_PromotionStage.PromotionId = {0} ", promotionId);
            var postList = _dataAccess.GetList <PromotionStage>(where);

            if (postList.Count > 0)
            {
                foreach (var item in postList)
                {
                    var tmp = list.Find(p => p.PostId == item.PostId);
                    if (tmp == null)
                    {
                        deleteIds.Add(item.StageId);
                        UpdatePostPromotion(item.PostId, 0);
                    }
                    else
                    {
                        item.Description         = tmp.Description;
                        item.Period              = tmp.Period;
                        item.ObligatoryLessScore = tmp.ObligatoryLessScore;
                        item.ElectiveLessScore   = tmp.ElectiveLessScore;
                        item.PassScore           = tmp.PassScore;
                        item.OrderNum            = tmp.OrderNum;

                        if (tmp.ExamId > 0)
                        {
                            tbExampaper           exampaper = _exampaperDB.GetSingleById <tbExampaper>(tmp.ExamId);
                            tbExampaperRedundancy model     = new tbExampaperRedundancy
                            {
                                ExampaperId        = exampaper._id,
                                Description        = exampaper.Description,
                                Distribution       = exampaper.Distribution,
                                ExamSortID         = exampaper.ExamSortID,
                                TrainDetailId      = exampaper.TrainDetailId,
                                UserID             = exampaper.UserID,
                                CreateTime         = exampaper.CreateTime,
                                ExampaperAvailable = exampaper.ExampaperAvailable,
                                ExampaperOpen      = exampaper.ExampaperOpen,
                                ExampaperScore     = exampaper.ExampaperScore,
                                ExampaperTitle     = exampaper.ExampaperTitle,
                                ExamType           = exampaper.ExamType,
                                LastUpdateTime     = exampaper.LastUpdateTime,
                                QuestionList       = exampaper.QuestionList,
                                QuestionRule       = exampaper.QuestionRule,
                                QuestionTypeOrder  = exampaper.QuestionTypeOrder,
                                Realname           = exampaper.Realname,
                                Status             = exampaper.Status,
                                TenantId           = exampaper.TenantId
                            };
                            item.ExamId = _exampaperDB.Insert <tbExampaperRedundancy>(model);
                        }
                        _dataAccess.UpdateEntity(item);
                        list.Remove(tmp);
                    }
                }
            }
            if (deleteIds.Count > 0)
            {
                _dataAccess.UpdateField("Ab_PromotionStage", "IsDelete", "1", "where StageId in (" + deleteIds.GetString() + ")");
            }
            if (list.Count > 0)
            {
                foreach (var item in list)
                {
                    if (item.ExamId > 0)
                    {
                        tbExampaper           exampaper = _exampaperDB.GetSingleById <tbExampaper>(item.ExamId);
                        tbExampaperRedundancy model     = new tbExampaperRedundancy
                        {
                            ExampaperId        = exampaper._id,
                            Description        = exampaper.Description,
                            Distribution       = exampaper.Distribution,
                            ExamSortID         = exampaper.ExamSortID,
                            TrainDetailId      = exampaper.TrainDetailId,
                            UserID             = exampaper.UserID,
                            CreateTime         = exampaper.CreateTime,
                            ExampaperAvailable = exampaper.ExampaperAvailable,
                            ExampaperOpen      = exampaper.ExampaperOpen,
                            ExampaperScore     = exampaper.ExampaperScore,
                            ExampaperTitle     = exampaper.ExampaperTitle,
                            ExamType           = exampaper.ExamType,
                            LastUpdateTime     = exampaper.LastUpdateTime,
                            QuestionList       = exampaper.QuestionList,
                            QuestionRule       = exampaper.QuestionRule,
                            QuestionTypeOrder  = exampaper.QuestionTypeOrder,
                            Realname           = exampaper.Realname,
                            Status             = exampaper.Status,
                            TenantId           = exampaper.TenantId
                        };
                        item.ExamId = _exampaperDB.Insert <tbExampaperRedundancy>(model);
                    }
                }
                _dataAccess.AddEntities(list);
            }
        }
Ejemplo n.º 20
0
        /// <summary>
        /// </summary>
        /// <param name="examBeginTimeStart"></param>
        /// <param name"examBeginTimeEnd"></param>
        /// <param name="examinationTitle"></param>
        /// <param name="startFlag">0:未开始 1:进行中 2:已结束 -1:全部</param>
        /// <param name="orderbyName">0:创建时间 1:考试开始时间 2:考试次数 </param>
        /// <param name="pageSize"></param>
        /// <param name="pageIndex"></param>
        /// <param name="orderbyFlag">0:不desc 1:desc </param>
        /// <returns></returns>
        public JsonResult GetExaminationList(string examBeginTimeStart, string examBeginTimeEnd, string examinationTitle,
                                             int startFlag   = -1,
                                             int orderbyFlag = 0, int orderbyName = 0, int pageSize = 10,
                                             int pageIndex   = 1)
        {
            IEnumerable <tbExamination> result =
                _examinationBL.GetAllExamination().Where(p => p.ExaminationTitle.Contains(examinationTitle));

            if (!string.IsNullOrEmpty(examBeginTimeStart))
            {
                result = result.Where(p => p.ExamBeginTime.ToLocalTime() >= examBeginTimeStart.StringToDate(0));
            }
            if (!string.IsNullOrEmpty(examBeginTimeEnd))
            {
                result = result.Where(p => p.ExamBeginTime.ToLocalTime() <= examBeginTimeEnd.StringToDate(1));
            }
            switch (startFlag)
            {
            case -1:
                break;

            case 0:
                result = result.Where(p => DateTime.Now < p.ExamBeginTime.ToLocalTime() && p.PublishedFlag == 1);
                break;

            case 1:
                result =
                    result.Where(
                        p =>
                        p.ExamBeginTime.ToLocalTime() < DateTime.Now && DateTime.Now < p.ExamEndTime.ToLocalTime() &&
                        p.PublishedFlag == 1);
                break;

            case 2:
                result = result.Where(p => p.ExamEndTime.ToLocalTime() < DateTime.Now && p.PublishedFlag == 1);
                break;

            case 3:
                result = result.Where(p => p.PublishedFlag == 0);
                break;
            }

            switch (orderbyName)
            {
            case 0:
                if (orderbyFlag == 0)
                {
                    result = result.OrderBy(p => p.CreateTime);
                }
                else if (orderbyFlag == 1)
                {
                    result = result.OrderByDescending(p => p.CreateTime);
                }
                break;

            case 1:
                if (orderbyFlag == 0)
                {
                    result = result.OrderBy(p => p.ExamBeginTime);
                }
                else if (orderbyFlag == 1)
                {
                    result = result.OrderByDescending(p => p.ExamBeginTime);
                }
                break;

            case 2:
                if (orderbyFlag == 0)
                {
                    result = result.OrderBy(p => p.TestTimes);
                }
                else if (orderbyFlag == 1)
                {
                    result = result.OrderByDescending(p => p.TestTimes);
                }
                break;
            }

            int totalCount = result.Count();

            result = result.Skip((pageIndex - 1) * pageSize).Take(pageSize);

            var itemArray = new object[result.Count()];
            int n         = 0;

            foreach (tbExamination item in result)
            {
                string strStatus      = "";
                string examTotalScore = "";
                int    intPassScore   = 0;
                if (item.PublishedFlag == 1)
                {
                    if (item.ExamEndTime.ToLocalTime() > DateTime.Now && DateTime.Now > item.ExamBeginTime.ToLocalTime())
                    {
                        strStatus = "进行中";
                    }
                    else if (item.ExamEndTime.ToLocalTime() < DateTime.Now)
                    {
                        strStatus = "已结束";
                    }
                    else
                    {
                        strStatus = "未开始";
                    }
                }
                else
                {
                    strStatus = "未发布";
                }
                if (item.PercentFlag == 1)//如果不是百分制,那么 通过分数 需要乘以 百分比
                {
                    tbExampaper paper = _exampaperBL.GetExampaper(item.PaperID);
                    intPassScore   = Convert.ToInt32(paper.ExampaperScore * item.PassScore * 0.01);
                    examTotalScore = paper.ExampaperScore.ToString();
                }
                else
                {
                    examTotalScore = "100";
                    intPassScore   = Convert.ToInt32(item.PassScore);
                }

                var temp = new
                {
                    item._id,
                    item.ExaminationTitle,
                    item.ExamLength,
                    ExamBeginTime = item.ExamBeginTime.ToLocalTime().ToString("yyyy-MM-dd HH:mm"),
                    ExamEndTime   = item.ExamEndTime.ToLocalTime().ToString("yyyy-MM-dd HH:mm"),
                    item.TestTimes,
                    intPassScore,
                    examTotalScore,
                    ExamStaus    = strStatus,
                    AuthExamHtml =
                        item.PublishedFlag == 1 ? "disabled='disabled'" : " onclick='AuthExam(" + item._id + ")' ",
                    DetailExamHtml = " onclick='DetailExam(" + item._id + ")' ",
                    ModifyExamHtml =
                        item.PublishedFlag == 1 ? "disabled='disabled'" : " onclick='ModifyExam(" + item._id + ")' ",
                    DeleteExamHtml =
                        item.PublishedFlag == 1 ? "disabled='disabled'" : " onclick='DeleteExam(" + item._id + ")' ",
                    PublishExamHtml =
                        (strStatus == "未发布" && item.PublishedFlag == 0)
                                ? "onclick='PublishExam(" + item._id + ")'"
                                : "disabled='disabled'"
                };
                itemArray[n] = temp;
                n++;
            }

            return(Json(new
            {
                result = 1,
                dataList = itemArray.ToList(),
                recordCount = totalCount
            },
                        JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 21
0
 /// <summary>
 ///     根据ID修改单个实体
 /// </summary>
 /// <returns></returns>
 public bool UpdateExampaper(tbExampaper tbE)
 {
     return(EDB.UpdateExampaper(tbE));
 }
Ejemplo n.º 22
0
        /// <summary>
        ///     获得可以复评的考试:考试已经结束、考试已经发布
        /// </summary>
        /// <param name="examBeginTimeStart"></param>
        /// <param name="examBeginTimeEnd"></param>
        /// <param name="examinationTitle"></param>
        /// <param name="pageSize"></param>
        /// <param name="pageIndex"></param>
        /// <returns></returns>
        public JsonResult GetReEvaluationList(string examBeginTimeStart, string examBeginTimeEnd,
                                              string examinationTitle, int pageSize = 20, int pageIndex = 1)
        {
            IEnumerable <tbExamination> result = _examinationBL.GetAllExamination().Where(p =>
                                                                                          p.ExamEndTime.ToLocalTime() <
                                                                                          DateTime.Now &&
                                                                                          p.PublishedFlag == 1 &&
                                                                                          p.ExaminationTitle.Contains(
                                                                                              examinationTitle) &&
                                                                                          p.ApprovalUser.Contains(
                                                                                              CurrentUser.UserId));

            if (!string.IsNullOrEmpty(examBeginTimeStart))
            {
                result = result.Where(p => p.ExamBeginTime.ToLocalTime() >= examBeginTimeStart.StringToDate(0));
            }
            if (!string.IsNullOrEmpty(examBeginTimeEnd))
            {
                result = result.Where(p => p.ExamBeginTime.ToLocalTime() <= examBeginTimeEnd.StringToDate(1));
            }

            int totalCount = result.Count();

            result = result.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();

            var itemArray = new object[result.Count()];
            int n         = 0;

            foreach (tbExamination item in result)
            {
                int    intPassScore   = 0;
                string examTotalScore = "";
                if (item.PercentFlag == 1)
                {
                    tbExampaper paper = _exampaperBL.GetExampaper(item.PaperID);
                    intPassScore   = Convert.ToInt32(paper.ExampaperScore * item.PassScore * 0.01);
                    examTotalScore = paper.ExampaperScore.ToString();
                }
                else
                {
                    examTotalScore = "100";
                    intPassScore   = Convert.ToInt32(item.PassScore);
                }

                var temp = new
                {
                    item._id,
                    item.ExaminationTitle,
                    item.ExamLength,
                    ExamBeginTime = item.ExamBeginTime.ToLocalTime().ToString(),
                    ExamEndTime   = item.ExamEndTime.ToLocalTime().ToString(),
                    item.TestTimes,
                    PassScore = intPassScore,
                    examTotalScore,
                    PublishResultHtml =
                        item.PublishResult == 1
                                ? "disabled='disabled'"
                                : " onclick='PublishResultExam(" + item._id + ")' ",
                    ReEvaluationHtml =
                        item.PublishResult == 1
                                ? "disabled='disabled'"
                                : " onclick='ReEvaluationExam(" + item._id + ")' "
                };
                itemArray[n] = temp;
                n++;
            }

            return(Json(new
            {
                result = 1,
                dataList = itemArray.ToList(),
                recordCount = totalCount
            },
                        JsonRequestBehavior.AllowGet));
        }