コード例 #1
0
        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;
            }
        }
コード例 #2
0
        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;
            }
        }
コード例 #3
0
        public ActionResult Edit(ExaminationPaperTemplate m)
        {
            if (ModelState.IsValid)
            {

                if (um.Edit(m))
                {
                    return Redirect("/Contents/html/parent_reload.htm");
                }
            }

            return View(m);
        }
コード例 #4
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);
            }
        }
コード例 #5
0
        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;
        }
コード例 #6
0
        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();
        }
コード例 #7
0
        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;
        }
コード例 #8
0
        public void WhetherGenerateTest1_2()
        {
            int etId, eptId;
            bool expected, actual;
            DateTime now, startTime;
            ExaminationTask et;
            ExaminationPaperTemplate ept;
            UExaminationTask uet;
            GeneratePaperTemplate_Accessor target = new GeneratePaperTemplate_Accessor();

            #region 添加测试数据
            now = DateTime.Now;
            startTime = new DateTime(1970, 1, 1, now.AddHours(1).Hour, now.Minute, 0);

            uet = new UExaminationTask();
            etId = new Utility().GetETId();
            et = new ExaminationTask
            {
                ET_Id = etId,
                ET_Name = "单元测试每日任务1",
                ET_Enabled = (Byte)ExaminationTaskStatus.Enabled,
                ET_Type = (Byte)ExaminationTaskType.Examination,
                ET_ParticipatingDepartment = "[6,9]",
                ET_Attendee = "[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,39,40,41,42,43,44,45]",
                ET_StatisticType = (Byte)StatisticType.Score,
                ET_TotalScore = 100,
                ET_TotalNumber = 10,
                ET_Mode = (Byte)ExaminationTaskMode.Auto,
                ET_AutoType = (Byte)AutoType.Day,
                ET_AutoOffsetDay = 0,
                ET_DifficultyCoefficient = 0,
                ET_AutoClassifies = "[\"综合、公文、绩效知识(90题)\",\"所得税知识(180题)\",\"营业税知识(60题)\",\"其他地方税知识(180题)\",\"税收征管法、相关法律法规及征管制度(253题)\",\"规费知识(130题)\",\"纳税服务知识(95题)\"]",
                ET_AutoRatio = "[{\"type\":\"单选题\",\"percent\":0.2},{\"type\":\"多选题\",\"percent\":0.2},{\"type\":\"判断题\",\"percent\":0.2},{\"type\":\"公文改错题\",\"percent\":0.1},{\"type\":\"计算题\",\"percent\":0.1},{\"type\":\"案例分析题\",\"percent\":0.1},{\"type\":\"问答题\",\"percent\":0.1}]",
                ET_StartTime = startTime,
                ET_EndTime = startTime,
                ET_TimeSpan = 0,
                ET_PaperTemplates = "[]",
                ET_Questions = "[]",
                ET_Remark = "",
                ET_AddTime = now,
                ET_Status = (Byte)Status.Available
            };
            olsEni.Entry(et).State = EntityState.Added;
            if (0 == olsEni.SaveChanges())
            {
                Assert.Fail("添加测试数据失败。");
            }

            eptId = uet.GetEPTId();
            startTime = new DateTime(now.Year, now.Month, now.Day, startTime.Hour, startTime.Minute, startTime.Second);
            ept = new ExaminationPaperTemplate
            {
                EPT_Id = eptId,
                ET_Id = etId,
                ET_Type = et.ET_Type,
                ET_Name = et.ET_Name,
                EPT_PaperTemplateStatus = (Byte)PaperTemplateStatus.Undone,
                EPT_StartDate = now.Date,
                EPT_StartTime = startTime,
                EPT_EndTime = startTime.AddMinutes(et.ET_TimeSpan),
                EPT_TimeSpan = et.ET_TimeSpan,
                EPT_Questions = "[]",
                EPT_Remark = "",
                EPT_AddTime = now,
                EPT_Status = (Byte)Status.Available
            };
            olsEni.Entry(ept).State = EntityState.Added;
            if (0 == olsEni.SaveChanges())
            {
                Assert.Fail("添加测试数据失败。");
            }
            #endregion

            expected = false;
            actual = target.WhetherGenerate(et);

            #region 删除测试数据
            olsEni.Entry(ept).State = EntityState.Deleted;
            if (0 == olsEni.SaveChanges())
            {
                Assert.Fail("删除测试数据失败。试卷模板 id值为 " + eptId + " 。");
            }
            olsEni.Entry(et).State = EntityState.Deleted;
            if (0 == olsEni.SaveChanges())
            {
                Assert.Fail("删除测试数据失败。考试任务 id值为 " + etId + " 。");
            }
            #endregion

            Assert.AreEqual(expected, actual);
        }
コード例 #9
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;
        }
コード例 #10
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;
        }