public Boolean Edit(ExaminationPaperTemplate model)
        {
            throw new NotImplementedException();

            try
            {
                // 已过考试开始时间/已经手动开始,不可修改模板
                if (model.EPT_PaperTemplateStatus >= 2)
                {
                    return(false);
                }

                olsEni.Entry(model).State = EntityState.Modified;
                olsEni.SaveChanges();

                AddQuestionTemplate(model);

                return(true);
            }
            catch (Exception ex)
            {
                StaticHelper.RecordSystemLog(ex);
                return(false);
            }
        }
        private void AddQuestionTemplate(ExaminationPaperTemplate model)
        {
            DateTime now;
            Int32    id, tmp;

            Int32[]  qs;
            Question q;
            List <ExaminationPaperTemplateQuestion> eptqs;

            now = DateTime.Now;

            // 删除原有试题模板
            eptqs = olsEni.ExaminationPaperTemplateQuestions
                    .Where(m =>
                           m.EPT_Id == model.EPT_Id &&
                           m.EPTQ_Status == (Byte)Status.Available)
                    .ToList();

            foreach (var eptq in eptqs)
            {
                olsEni.Entry(eptq).State = EntityState.Deleted;
            }
            olsEni.SaveChanges();

            qs = JsonConvert.DeserializeObject <Int32[]>(model.EPT_Questions);

            // 获取试题模板Id
            id = GetEPTQId();

            for (var i = 0; i < qs.Length; i++)
            {
                tmp = qs[i];
                q   = olsEni.Questions.SingleOrDefault(m => m.Q_Id == tmp);

                if (null != q)
                {
                    olsEni.ExaminationPaperTemplateQuestions.Add(new ExaminationPaperTemplateQuestion
                    {
                        EPTQ_Id       = id,
                        EPT_Id        = model.EPT_Id,
                        EPTQ_Type     = q.Q_Type,
                        EPTQ_Classify = q.QC_Id,
                        EPTQ_DifficultyCoefficient = q.Q_DifficultyCoefficient,
                        EPTQ_Content        = q.Q_Content,
                        EPTQ_OptionalAnswer = q.Q_OptionalAnswer,
                        EPTQ_ModelAnswer    = q.Q_ModelAnswer,
                        EPTQ_Remark         = q.Q_Remark,
                        EPTQ_AddTime        = now,
                        EPTQ_Status         = q.Q_Status
                    });

                    id += 1;
                }
            }
            olsEni.SaveChanges();
        }
        public ActionResult Edit(ExaminationPaperTemplate m)
        {
            if (ModelState.IsValid)
            {
                if (um.Edit(m))
                {
                    return(Redirect("/Contents/html/parent_reload.htm"));
                }
            }

            return(View(m));
        }
        public ExaminationPaperTemplate GetNew(Int32 etId)
        {
            ExaminationTask          et;
            ExaminationPaperTemplate model;

            et = olsEni.ExaminationTasks.SingleOrDefault(m => m.ET_Id == etId);

            model = new ExaminationPaperTemplate()
            {
                EPT_Id        = 0,
                ET_Id         = etId,
                ET_Type       = et.ET_Type,
                EPT_StartTime = et.ET_StartTime,
                EPT_EndTime   = et.ET_EndTime,
                EPT_TimeSpan  = et.ET_TimeSpan,
                EPT_Questions = "[]",
                EPT_AddTime   = DateTime.Now,
                EPT_Status    = (Byte)Status.Available
            };

            return(model);
        }
        public Boolean Create(ExaminationPaperTemplate model)
        {
            throw new NotImplementedException();

            try
            {
                Int32 id;

                id = GetEPTId();

                model.EPT_Id = id;
                olsEni.ExaminationPaperTemplates.Add(model);
                olsEni.SaveChanges();

                AddQuestionTemplate(model);

                return(true);
            }
            catch (Exception ex)
            {
                StaticHelper.RecordSystemLog(ex);
                return(false);
            }
        }
Beispiel #6
0
        private void AddPaperTemplateAndQuestionTemplate(ExaminationTask model)
        {
            Int32    id, tmpId, continueDays;
            Question q;
            ExaminationPaperTemplate                ept;
            ExaminationPaperTemplateQuestion        eptq;
            List <ExaminationPaperTemplateQuestion> eptqs;

            Int32[]  qs;
            DateTime startDate, startTime, endTime;

            // 任务类型为“练习”或自动类型为“自动”,则不添加手动试卷模板
            if ((Byte)ExaminationTaskType.Exercise == model.ET_Type ||
                (Byte)ExaminationTaskMode.Auto == model.ET_Mode)
            {
                return;
            }

            id = GetEPTId();

            // 设置“预定考试任务”的时间
            if ((Byte)ExaminationTaskMode.Custom == model.ET_Mode)
            {
                // - [201608191537]
                startDate = model.ET_StartTime.Date;

                startTime = model.ET_StartTime;
                startTime = new DateTime(startDate.Year, startDate.Month, startDate.Day, startTime.Hour, startTime.Minute, startTime.Second);
                startTime = startTime.AddMinutes(3);

                endTime      = model.ET_EndTime;
                endTime      = new DateTime(startDate.Year, startDate.Month, startDate.Day, endTime.Hour, endTime.Minute, endTime.Second);
                continueDays = model.ET_ContinuedDays > 0 ? model.ET_ContinuedDays - 1 : 0;
                endTime      = endTime.AddDays(continueDays).AddMinutes(3);
            }
            else
            {
                startDate = now.Date;
                startTime = now;
                endTime   = now;
            }

            ept = new ExaminationPaperTemplate
            {
                EPT_Id  = id,
                ET_Id   = model.ET_Id,
                ET_Type = model.ET_Type,
                EPT_PaperTemplateStatus = (Byte)PaperTemplateStatus.Undone,
                EPT_StartDate           = startDate,
                EPT_StartTime           = startTime,
                EPT_EndTime             = endTime,
                EPT_TimeSpan            = model.ET_TimeSpan,
                EPT_Questions           = model.ET_Questions,
                EPT_AddTime             = now,
                EPT_Status = (Byte)Status.Available
            };
            olsEni.ExaminationPaperTemplates.Add(ept);

            qs    = JsonConvert.DeserializeObject <Int32[]>(model.ET_Questions);
            eptqs = new List <ExaminationPaperTemplateQuestion>();

            // 获取试题模板Id
            id = GetEPTQId();

            for (var i = 0; i < qs.Length; i++)
            {
                tmpId = qs[i];
                q     = olsEni.Questions.SingleOrDefault(m => m.Q_Id == tmpId);

                if (null != q)
                {
                    eptq = new ExaminationPaperTemplateQuestion
                    {
                        EPTQ_Id       = id,
                        EPT_Id        = ept.EPT_Id,
                        EPTQ_Type     = q.Q_Type,
                        EPTQ_Classify = q.QC_Id,
                        EPTQ_DifficultyCoefficient = q.Q_DifficultyCoefficient,
                        EPTQ_Score          = q.Q_Score,
                        EPTQ_Content        = q.Q_Content,
                        EPTQ_OptionalAnswer = q.Q_OptionalAnswer,
                        EPTQ_ModelAnswer    = q.Q_ModelAnswer,
                        EPTQ_Remark         = q.Q_Remark,
                        EPTQ_AddTime        = now,
                        EPTQ_Status         = q.Q_Status
                    };

                    eptqs.Add(eptq);

                    id += 1;
                }
            }

            eptqs = AdjustScore(eptqs, model.ET_StatisticType, model.ET_TotalScore);

            if (0 == olsEni.SaveChanges())
            {
                throw new Exception(ResponseMessage.SaveChangesError);
            }

            foreach (var eptq1 in eptqs)
            {
                olsEni.Entry(eptq1).State = EntityState.Added;
            }

            if (0 == olsEni.SaveChanges())
            {
                throw new Exception(ResponseMessage.SaveChangesError);
            }
        }
        private ResponseJson addExaminationPaper(ExaminationPaperTemplate ept, Int32 uId)
        {
            Int32            epId, epqId;
            ExaminationPaper ep;
            ResponseJson     resJson;
            List <ExaminationPaperTemplateQuestion> eptqs;

            resJson = new ResponseJson(ResponseStatus.Error, now);

            // 添加试卷
            epId = GetEPId();

            ep = new ExaminationPaper
            {
                EP_Id          = epId,
                ET_Id          = ept.ET_Id,
                EPT_Id         = ept.EPT_Id,
                EP_PaperStatus = (Byte)PaperStatus.Doing,
                EP_EndTime     = now.AddMinutes(ept.EPT_TimeSpan), // 进入考试时开始计算考试时间
                EP_TimeSpan    = ept.EPT_TimeSpan,
                EP_UserId      = uId,
                EP_UserName    = "",
                EP_Score       = -1,
                EP_Remark      = "",
                EP_AddTime     = now,
                EP_Status      = (Byte)Status.Available
            };

            // 添加试卷试题数据
            eptqs =
                olsEni.ExaminationPaperTemplateQuestions
                .Where(m =>
                       m.EPT_Id == ept.EPT_Id &&
                       m.EPTQ_Status == (Byte)Status.Available)
                .ToList();
            epqId = GetEPQId();
            foreach (var eptq in eptqs)
            {
                var epq = new ExaminationPaperQuestion
                {
                    EPQ_Id        = epqId,
                    EP_Id         = epId,
                    EPTQ_Id       = eptq.EPTQ_Id,
                    EPQ_Answer    = "",
                    EPQ_Exactness = 0,
                    EPQ_Critique  = "",
                    EPQ_AddTime   = now
                };
                olsEni.Entry(epq).State = EntityState.Added;
                epqId += 1;
            }

            olsEni.Entry(ep).State = EntityState.Added;
            if (0 == olsEni.SaveChanges())
            {
                resJson.message = ResponseMessage.SaveChangesError;
                return(resJson);
            }

            resJson.status = ResponseStatus.Success;
            resJson.data   = epId;
            return(resJson);
        }
Beispiel #8
0
        public Int32 CreatePaperTemplateOfExercise(ExaminationTask et, List <Question> readyQs)
        {
            Int32  eptId, eptqId;
            String eptQs;

            Int32[] eptQsAry;
            ExaminationPaperTemplate         ept;
            ExaminationPaperTemplateQuestion eptq;
            ExaminationQuestionDone          eqd;

            eptId = GetEPTId();

            eptQsAry = readyQs.Select(m => m.Q_Id).ToArray();
            eptQs    = JsonConvert.SerializeObject(eptQsAry);

            ept = new ExaminationPaperTemplate
            {
                EPT_Id  = eptId,
                ET_Id   = et.ET_Id,
                ET_Type = et.ET_Type,
                EPT_PaperTemplateStatus = (Byte)PaperTemplateStatus.Undone,
                EPT_StartDate           = et.ET_StartTime.Date,
                EPT_StartTime           = et.ET_StartTime, // 练习试卷模板,无需开启,故“开始时间”设置为任务定义的“开始时间”。
                EPT_EndTime             = et.ET_StartTime, // 同上
                EPT_TimeSpan            = et.ET_TimeSpan,
                EPT_Questions           = eptQs,
                EPT_Remark  = "本试卷模板由系统于" + now.ToString("yyyy年MM月dd日") + "自动生成。",
                EPT_AddTime = now,
                EPT_Status  = 1
            };
            olsEni.Entry(ept).State = EntityState.Added;

            if (0 == olsEni.SaveChanges())
            {
                throw new Exception(ResponseMessage.SaveChangesError);
            }

            eptqId = GetEPTQId();

            foreach (var q in readyQs)
            {
                eptq = new ExaminationPaperTemplateQuestion
                {
                    EPTQ_Id             = eptqId,
                    EPT_Id              = eptId,
                    EPTQ_Type           = q.Q_Type,
                    EPTQ_Classify       = q.QC_Id,
                    EPTQ_Score          = q.Q_Score,
                    EPTQ_Content        = q.Q_Content,
                    EPTQ_OptionalAnswer = q.Q_OptionalAnswer,
                    EPTQ_ModelAnswer    = q.Q_ModelAnswer,
                    EPTQ_Remark         = q.Q_Remark,
                    EPTQ_AddTime        = now,
                    EPTQ_Status         = 1
                };
                olsEni.Entry(eptq).State = EntityState.Added;

                // 添加已出题记录
                eqd = new ExaminationQuestionDone {
                    ET_Id = et.ET_Id, EPT_Id = ept.EPT_Id, U_Id = uId, Q_Id = q.Q_Id
                };
                olsEni.Entry(eqd).State = EntityState.Added;

                eptqId += 1;
            }

            if (0 == olsEni.SaveChanges())
            {
                throw new Exception(ResponseMessage.SaveChangesError);
            }

            return(eptId);
        }
Beispiel #9
0
        private Boolean CreatePaperTemplate(ExaminationTask et, List <Question> readyQs)
        {
            Int32    eptId, eptqId;
            String   eptQs;
            DateTime startTime, endTime;

            Int32[] eptQsAry;
            ExaminationPaperTemplate         ept;
            ExaminationPaperTemplateQuestion eptq;
            ExaminationQuestionDone          eqd;

            List <ExaminationPaperTemplateQuestion> tmpEPTQ = new List <ExaminationPaperTemplateQuestion>();

            eptId = GetEPTId();

            eptQsAry = readyQs.Select(m => m.Q_Id).ToArray();
            eptQs    = JsonConvert.SerializeObject(eptQsAry);

            startTime = et.ET_StartTime;
            startTime = new DateTime(nowDate.Year, nowDate.Month, nowDate.Day, startTime.Hour, startTime.Minute, startTime.Second);

            endTime = et.ET_EndTime;
            endTime = new DateTime(nowDate.Year, nowDate.Month, nowDate.Day, endTime.Hour, endTime.Minute, endTime.Second);

            ept = new ExaminationPaperTemplate
            {
                EPT_Id  = eptId,
                ET_Id   = et.ET_Id,
                ET_Type = et.ET_Type,
                EPT_PaperTemplateStatus = (Byte)PaperTemplateStatus.Undone,
                EPT_StartDate           = nowDate,
                EPT_StartTime           = startTime,
                EPT_EndTime             = endTime,
                EPT_TimeSpan            = et.ET_TimeSpan,
                EPT_Questions           = eptQs,
                EPT_Remark  = "本试卷模板由系统于" + now.ToString("yyyy年MM月dd日") + "自动生成。",
                EPT_AddTime = now,
                EPT_Status  = 1
            };
            olsEni.Entry(ept).State = EntityState.Added;

            if (0 == olsEni.SaveChanges())
            {
                throw new Exception(ResponseMessage.SaveChangesError);
            }

            eptqId = GetEPTQId();

            foreach (var q in readyQs)
            {
                eptq = new ExaminationPaperTemplateQuestion
                {
                    EPTQ_Id             = eptqId,
                    EPT_Id              = eptId,
                    EPTQ_Type           = q.Q_Type,
                    EPTQ_Classify       = q.QC_Id,
                    EPTQ_Score          = q.Q_Score,
                    EPTQ_Content        = q.Q_Content,
                    EPTQ_OptionalAnswer = q.Q_OptionalAnswer,
                    EPTQ_ModelAnswer    = q.Q_ModelAnswer,
                    EPTQ_Remark         = q.Q_Remark,
                    EPTQ_AddTime        = now,
                    EPTQ_Status         = 1
                };
                tmpEPTQ.Add(eptq);
                olsEni.Entry(eptq).State = EntityState.Added;

                // 添加已出题记录
                eqd = new ExaminationQuestionDone {
                    ET_Id = et.ET_Id, EPT_Id = ept.EPT_Id, Q_Id = q.Q_Id
                };
                olsEni.Entry(eqd).State = EntityState.Added;

                eptqId += 1;
            }

            if (0 == olsEni.SaveChanges())
            {
                throw new Exception(ResponseMessage.SaveChangesError);
            }

            return(true);
        }