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; } }
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; } }
public ActionResult Edit(ExaminationPaperTemplate m) { if (ModelState.IsValid) { if (um.Edit(m)) { return Redirect("/Contents/html/parent_reload.htm"); } } return View(m); }
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); } }
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; }
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(); }
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; }
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); }
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; }
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; }