/// <summary> /// 更新随机试卷信息 /// </summary> /// <param name="s">随机试卷实体</param> public static void UpdateExam(RandomExamInfo s, ExamDbDataContext dc) { AttachInfo<RandomExamInfo>(dc.RandomExamInfo, s); dc.SubmitChanges(); // PurgeCacheItems("AllExams_" + s.DepartmentID.ToString()); }
///// <summary> ///// 根据基本试卷id,返回统计结果 ///// </summary> ///// <param name="id">随机试卷id</param> ///// <returns></returns> //public static IList<RandomExamInfo> GetResultsByBasicExamID(int basicExamID) //{ // IList<RandomExamInfo> randomList = GetRandomExamsByBasicExamID(basicExamID); // var results = from s in randomList // group s by s.ClassID; // var rr=from r in results // select new{ //} /// <summary> /// 删除随机试卷信息 /// </summary> /// <param name="s">随机试卷实体</param> public static void DeleteExam(RandomExamInfo s, ExamDbDataContext dc) { AttachInfo<RandomExamInfo>(dc.RandomExamInfo, s); if (Utility.DeleteStuXMLFile(s.StuNum, s.BasicExamID)) { dc.RandomExamInfo.DeleteOnSubmit(s); dc.SubmitChanges(); PurgeCacheItems("RandomExams"); } else return; }
///生成学生随机试卷的xml文件,返回随机试卷的ID public static int CreatRandomExamXMLFile(StudentInfo stu, int basicExamID) { ExamDbDataContext dc = DataAccess.CreateDBContext(); BasicExamInfo exam = dc.BasicExamInfo.Single(p => p.BasicExamID == basicExamID); if (exam == null) return 0; IList<int> singleChoices = GetSingleChoicesIDs(dc, exam); IList<int> mutilChoices = GetMutilChoicesIDs(dc, exam); IList<int> judges = GetJudgesIDs(dc, exam); //将随机生成的选择题id和判断题id分别插入随机试卷实体中 RandomExamInfo re = new RandomExamInfo(); re.SingleChoiceIDs = getIDs(singleChoices); if (mutilChoices == null) re.MutilChoiceIDs = "0"; else re.MutilChoiceIDs = getIDs(mutilChoices); re.JudgeIDs = getIDs(judges); re.BasicExamID = basicExamID; re.ExamInfoFilePath =Utility.GetRelativeExamFilePath(stu.StuNum,basicExamID);//需要相对路径,待修改!! re.StudentID = stu.StudentID; re.ClassID = (int)stu.ClassID; re.InExaming = true; re.LoginTimes = 1; re.HasFinished = false; re.StartTime = DateTime.Now; re.TimeUse = exam.TimeUse; re.IsVisitor = (stu.StudentID == 0); re.StuNum = stu.StuNum; int randomExamID = RandomExam.InsertRandomExam(re); //XDocument xdoc=new XDocument( XElement xroot = new XElement("StudentExam"); xroot.SetAttributeValue("stuNum", stu.StuNum); xroot.SetAttributeValue("basicExamID", basicExamID); xroot.SetAttributeValue("randomExamID", randomExamID); xroot.SetAttributeValue("getMark",0); //xroot.SetAttributeValue("timeLeft", re); xroot.SetAttributeValue("endTime", ""); xroot.SetAttributeValue("loginNum", "1"); //随机获取指定数量的单项选择题,假设要5条单项题 //if (singleChoices == null || mutilChoices == null || judges == null) return 0; //if (singleChoices.Count == 0 || mutilChoices.Count == 0 || judges.Count == 0) return 0; XElement singlesElement= GetChoices(dc, exam, singleChoices,"SingleChoice"); xroot.Add(singlesElement); XElement mutilsElement = GetChoices(dc, exam, mutilChoices, "MutilChoice"); if (mutilChoices != null) xroot.Add(mutilsElement); XElement judgesElement = GetJudgesELement(dc, exam, judges); xroot.Add(judgesElement); xroot.Save(Utility.GetStuExamFilePath(stu.StuNum,basicExamID)); return randomExamID; }
/// <summary> /// 插入随机试卷信息 /// </summary> /// <param name="s">随机试卷实体</param> public static int InsertRandomExam(RandomExamInfo s) { ExamDbDataContext dc = DataAccess.CreateDBContext(); dc.RandomExamInfo.InsertOnSubmit(s); dc.SubmitChanges(); PurgeCacheItems("RandomExams_"); // PurgeCacheItems("AllSubjects_" + s.DepartmentID.ToString()); return s.RandomExamID; }
private void detach_RandomExamInfo(RandomExamInfo entity) { this.SendPropertyChanging(); entity.BasicExamInfo = null; }