예제 #1
0
        public ActionResult MyExam()
        {
            //获取我的考试信息
            List <tbExamSendStudent> myTotalExamList = _examTestManager.GetMyExamList(CurrentUser.UserId);
            //相关的考试
            List <tbExamination> examlist =
                _examinationManager.GetAllExamination(myTotalExamList.Select(p => p.RelationID))
                .FindAll(
                    p =>
                    p.PublishResult == 1 && p.ExamBeginTime.ToLocalTime() <= DateTime.Now &&
                    p.ExamEndTime.ToLocalTime() >= DateTime.Now);

            examlist = examlist.OrderByDescending(p => p.ExamBeginTime).Take(5).ToList();
            var myExamListShow = new List <ExamTestShow>();

            foreach (tbExamination exam in examlist)
            {
                tbExamSendStudent examuser = myTotalExamList.Find(p => p.RelationID == exam._id);
                myExamListShow.Add(new ExamTestShow
                {
                    ExamUserID = examuser._id,
                    StartTime  = exam.ExamBeginTime.ToLocalTime(),
                    EndTime    = exam.ExamEndTime.ToLocalTime(),
                    ExamLength = exam.ExamLength,
                    ExamTitle  = exam.ExaminationTitle
                });
            }
            return(View(myExamListShow));
        }
예제 #2
0
        public JsonResult GetExamList(int type, string name, int pageIndex, int pageSize)
        {
            int total;
            //所有在学、已学的课程
            var userreadcourselist = _learningRecord.GetMyLearningRecord(out total, CurrentTenant.TenantId, CurrentUser.UserId, new int[0], "", null, null, 2);
            //所有在学、已学的课程中的考试
            var courseexamlist = _courseManager.GetUserCourseExamList(CurrentUser.UserId, 1, int.MaxValue);
            //所有在学、已学的课程中的考试信息
            var examlist = _exampaperManager.GetAllExampaperRedundancy(courseexamlist.Select(p => p.ExampaperId)).FindAll(p => p.ExampaperTitle.Contains(name));
            //我参与所有在学、已学的课程中的考试
            var myTotalExamList = _examTestManager.GetMyExamList(CurrentUser.UserId, 1);
            var recordids       = userreadcourselist.Select(p => p.RecordId).ToArray();

            var examtmpids = examlist.Select(p => p._id).ToArray();

            if (type == 0)
            {
                courseexamlist = courseexamlist.Where(p => (!myTotalExamList.Any(mt => recordids.Contains(mt.RelationID) && mt.ExamPaperID == p.ExampaperId)) && examtmpids.Contains(p.ExampaperId)).ToList();
                courseexamlist = courseexamlist.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
            }
            else if (type == 1)
            {
                courseexamlist = courseexamlist.Where(p => myTotalExamList.Any(mt => recordids.Contains(mt.RelationID) && mt.ExamPaperID == p.ExampaperId) && examtmpids.Contains(p.ExampaperId)).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
            }
            var dataList = new List <object>();

            foreach (var item in courseexamlist)
            {
                var tmp1 = userreadcourselist.FirstOrDefault(p => p.CourseId == item.CourseId);
                var tmp2 = examlist.FirstOrDefault(p => p._id == item.ExampaperId);
                if (tmp1 == null || tmp2 == null)
                {
                    continue;
                }
                var tmp3 = myTotalExamList.FirstOrDefault(p => p.RelationID == tmp1.RecordId && p.ExamPaperID == item.ExampaperId);
                dataList.Add(new
                {
                    tmp1.RecordId,
                    item.CourseName,
                    item.CourseId,
                    FrontImageUrl = item.FrontImage == "default.png" || string.IsNullOrWhiteSpace(item.FrontImage) ? Url.Addr("~/UploadFiles/CourseFrontImages/default.png") : Url.Addr(item.FrontImage),
                    item.ExampaperId,
                    tmp2.ExampaperTitle,
                    EuId          = tmp3 == null ? 0 : tmp3._id,
                    RemainingTime = tmp3 == null ? 0 : tmp3.RemainingTime,
                    item.TimeLength,
                    item.AllowTimes
                });
            }
            return(Json(new { dataList }, JsonRequestBehavior.AllowGet));
        }
예제 #3
0
        /// <summary>
        /// 根据搜索值来查询考试
        /// </summary>
        /// <param name="type">-1:全部;0:未参与;1:已参与</param>
        /// <param name="name"></param>
        /// <param name="top"></param>
        /// <returns></returns>
        public JsonResult GetSearchExamList(int type, string name, int pageIndex, int pageSize)
        {
            //获取我的考试信息
            List <tbExamSendStudent> myTotalExamList = _examTestManager.GetMyExamList(CurrentUser.UserId);
            //相关的考试
            var examlist = _examinationManager.GetAllExamination(myTotalExamList.Select(p => p.RelationID)).FindAll(p => p.PublishResult == 1 && (string.IsNullOrWhiteSpace(name) ? true : p.ExaminationTitle.ToUpper().Contains(name.ToUpper())));
            var myexam   = new List <object>();

            if (type == -1)
            {
                //全部
                var myTemp1 = myTotalExamList.Where(p => p.DoExamStatus < 2).Select(p => p.RelationID).ToArray();
                var myTemp2 = myTotalExamList.Where(p => p.DoExamStatus >= 2).Select(p => p.RelationID).ToArray();
                examlist = examlist.Where(p => (p.ExamEndTime.ToLocalTime() > DateTime.Now && myTemp1.Contains(p._id)) || (myTemp2.Contains(p._id))).OrderBy(p => p.ExamEndTime.ToLocalTime()).ToList();
                var paperlist = _exampaperManager.GetAllExampaperRedundancy(examlist.Select(p => p.PaperID));

                foreach (var item in examlist)
                {
                    var tmp      = myTotalExamList.Find(p => p.RelationID == item._id);
                    var paperTmp = paperlist.Find(p => p._id == item.PaperID);
                    myexam.Add(new
                    {
                        EuId          = tmp._id,
                        ExamTitle     = item.ExaminationTitle,
                        ExamBeginTime = item.ExamBeginTime.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss"),
                        ExamEndTime   = item.ExamEndTime.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss"),
                        IsGoIn        = (item.LeavePageTimes <= tmp.LeavePageTimes || item.TestTimes <= tmp.TestTimes || tmp.RemainingTime == 0) ? 0 : 1,
                        Pass          = item.AlreadySendScore == 1 ? tmp.IsPass : 0,
                        TestTimes     = item.TestTimes,
                        GoInTestTimes = tmp.TestTimes,
                        item.ExamLength,
                        PassScore  = (int)item.PassScore,
                        TotalScore = paperTmp == null ? 0 : paperTmp.ExampaperScore
                    });
                }
            }
            else if (type == 0)
            {
                //未提交
                var myTemp = myTotalExamList.Where(p => p.DoExamStatus < 2).Select(p => p.RelationID).ToArray();
                examlist = examlist.Where(p => p.ExamEndTime.ToLocalTime() > DateTime.Now && myTemp.Contains(p._id)).OrderBy(p => p.ExamEndTime.ToLocalTime()).ToList();
                var paperlist = _exampaperManager.GetAllExampaperRedundancy(examlist.Select(p => p.PaperID));

                foreach (var item in examlist)
                {
                    var tmp      = myTotalExamList.Find(p => p.RelationID == item._id);
                    var paperTmp = paperlist.Find(p => p._id == item.PaperID);
                    myexam.Add(new
                    {
                        EuId          = tmp._id,
                        ExamTitle     = item.ExaminationTitle,
                        ExamBeginTime = item.ExamBeginTime.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss"),
                        ExamEndTime   = item.ExamEndTime.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss"),
                        IsGoIn        = item.ExamEndTime.ToLocalTime() > DateTime.Now ? ((item.LeavePageTimes <= tmp.LeavePageTimes || item.TestTimes <= tmp.TestTimes || tmp.RemainingTime == 0) ? 0 : 1) : 0,
                        Pass          = 0,
                        TestTimes     = item.TestTimes,
                        GoInTestTimes = tmp.TestTimes,
                        item.ExamLength,
                        PassScore   = (int)item.PassScore,
                        TotalScore  = paperTmp == null ? 0 : paperTmp.ExampaperScore,
                        SurplusTime = (item.ExamEndTime.ToLocalTime() - DateTime.Now).TimespanDiff(),
                        IsStart     = item.ExamBeginTime.ToLocalTime() <= DateTime.Now ? 1 : 0
                    });
                }
            }
            else if (type == 1)
            {
                //已提交
                var myTemp = myTotalExamList.Where(p => p.DoExamStatus >= 2).Select(p => p.RelationID).ToArray();

                var tmplist = examlist.Where(p => myTemp.Contains(p._id) && p.ExamEndTime.ToLocalTime() > DateTime.Now).OrderBy(p => p.ExamEndTime.ToLocalTime()).ToList();
                tmplist.AddRange(examlist.Where(p => myTemp.Contains(p._id) && p.ExamEndTime.ToLocalTime() <= DateTime.Now).ToList());
                examlist = tmplist;

                var paperlist = _exampaperManager.GetAllExampaperRedundancy(examlist.Select(p => p.PaperID));
                foreach (var item in examlist)
                {
                    var tmp      = myTotalExamList.Find(p => p.RelationID == item._id);
                    var paperTmp = paperlist.Find(p => p._id == item.PaperID);
                    myexam.Add(new
                    {
                        EuId          = tmp._id,
                        ExamTitle     = item.ExaminationTitle,
                        ExamBeginTime = item.ExamBeginTime.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss"),
                        ExamEndTime   = item.ExamEndTime.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss"),
                        IsGoIn        = item.ExamEndTime.ToLocalTime() > DateTime.Now ? ((item.LeavePageTimes <= tmp.LeavePageTimes || item.TestTimes <= tmp.TestTimes || tmp.RemainingTime == 0) ? 0 : 1) : 0,
                        Pass          = item.AlreadySendScore == 1 ? tmp.IsPass : 0,
                        TestTimes     = item.TestTimes,
                        GoInTestTimes = tmp.TestTimes,
                        item.ExamLength,
                        PassScore  = (int)item.PassScore,
                        TotalScore = paperTmp == null ? 0 : paperTmp.ExampaperScore,
                        IsEnd      = item.ExamEndTime.ToLocalTime() <= DateTime.Now ? 1 : 0,
                        UserScore  = item.AlreadySendScore == 1 ? tmp.Score.ToString() : ""
                    });
                }
            }
            myexam = myexam.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
            return(Json(new { dataList = myexam }, JsonRequestBehavior.AllowGet));
        }