/// <summary> /// 返回公告信息 /// </summary> /// <param name="NoticeID">id号</param> /// <returns></returns> public static NoticeInfo GetNoticeByID(int noticeID, out ExamDbDataContext d) { ExamDbDataContext dc = DataAccess.CreateDBContext(); d = dc; var messages = from m in dc.NoticeInfo where m.NoticeID == noticeID select m; return ToSingle<NoticeInfo>(messages); }
/// <summary> /// 根据指定id返回对应基本试卷 /// </summary> /// <param name="id">基本试卷id</param> /// <returns></returns> public static BasicExamInfo GetBasicExamByID(int id, out ExamDbDataContext d) { ExamDbDataContext dc = DataAccess.CreateDBContext(); d = dc; var BasicExams = from s in dc.BasicExamInfo where s.BasicExamID == id select s; return ToSingle<BasicExamInfo>(BasicExams); }
/// <summary> /// 根据指定id返回对应临时课题 /// </summary> /// <param name="id">课题id</param> /// <returns></returns> public static SubjectInfo GetTempSubjectByID(int id,out ExamDbDataContext d) { ExamDbDataContext dc = DataAccess.CreateDBContext(); var subjects = from s in dc.SubjectInfo where s.SubjectID == id && s.IsFormal == false select s; d=dc; return ToSingle<SubjectInfo>(subjects); //SubjectInfo s = dc.SubjectInfo.Single(p => p.SubjectID == id); //return s; }
private static XElement GetJudgesELement(ExamDbDataContext dc, BasicExamInfo exam, IList<int> judgesIDs) { XElement judgesElement = new XElement("Judges"); judgesElement.SetAttributeValue("count", exam.JudgeNum); judgesElement.SetAttributeValue("eachMark", exam.JudgeMark); judgesElement.SetAttributeValue("getMark", 0); foreach (int judgeID in judgesIDs) { JudgeInfo j = dc.JudgeInfo.Single(p => p.JudgeID == judgeID); XElement judgeElement = new XElement("JudgeItem"); judgeElement.SetAttributeValue("judgeID",j.JudgeID); judgeElement.SetAttributeValue("title", j.Title); judgeElement.SetAttributeValue("setTrue", "-1"); judgesElement.Add(judgeElement); } return judgesElement; }
/// <summary> /// 根据id返回对应的adminuser /// </summary> /// <param name="aID"></param> /// <returns></returns> public static AdminUserInfo GetAdminUserByID(int aID,out ExamDbDataContext d) { ExamDbDataContext dc = DataAccess.CreateDBContext(); var admins = from a in dc.AdminUserInfo where a.AdminUserID == aID select a; d = dc; return ToSingle<AdminUserInfo>(admins); }
/// <summary> /// 更新判断题信息 /// </summary> /// <param name="s">判断题实体</param> public static void UpdateJudge(JudgeInfo s, ExamDbDataContext dc) { AttachInfo<JudgeInfo>(dc.JudgeInfo, s); dc.SubmitChanges(); // PurgeCacheItems("AllJudges_" + s.DepartmentID.ToString()); }
/// <summary> /// 根据专业id和班机获取还未分配给导师的学生列表 /// </summary> /// <param name="deptID"></param> /// <param name="majorID"></param> /// <param name="classnum"></param> /// <returns></returns> public static IQueryable<StudentInfo> GetStudents(int deptID, int majorID, string classnum, ExamDbDataContext d,bool canUserCache) { string key = "AllStudents_" + deptID.ToString() + "_" + majorID.ToString(); if (MyCache[key] != null&&canUserCache==true) { return (IQueryable<StudentInfo>)MyCache[key]; } else { ExamDbDataContext dc; if (d == null) dc = DataAccess.CreateDBContext(); else dc = d; var stus = from s in dc.StudentInfo where s.DepartmentID == deptID select s; if (majorID != 0) stus = stus.Where<StudentInfo>(p => p.MajorID == majorID); if (classnum != null) stus = stus.Where<StudentInfo>(p => p.Class.IndexOf(classnum) != -1); if(stus!=null)MyCache[key] = stus; return stus; } }
/// <summary> /// 根据id返回对应的学生实体 /// </summary> /// <param name="id"></param> /// <returns></returns> public static StudentInfo GetStudentByID(int id, out ExamDbDataContext d) { ExamDbDataContext dc = DataAccess.CreateDBContext(); d = dc; var a = from s in dc.StudentInfo where s.StudentID == id select s; return ToSingle<StudentInfo>(a); }
///// <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; }
/// <summary> /// 根据指定id返回对应随机试卷 /// </summary> /// <param name="id">随机试卷id</param> /// <returns></returns> public static RandomExamInfo GetRandomExamByID(int id, out ExamDbDataContext dc) { ExamDbDataContext d = DataAccess.CreateDBContext(); dc = d; var Exams = from s in dc.RandomExamInfo where s.RandomExamID == id select s; return ToSingle<RandomExamInfo>(Exams); }
private static IList<int> GetSingleChoicesIDs(ExamDbDataContext dc, BasicExamInfo exam) { var allsingleChoiceIDs = dc.SelectChoiceInfo.Where(p => p.IsSingleSelect == true&&(exam.ChapterID==0?p.CourseID==exam.CourseID:p.ChapterID==exam.ChapterID)).Select(p => p.SelectChoiceID).ToList(); int totalCount = allsingleChoiceIDs.Count(); IList<int> singleChoices = Utility.GetRandomList(allsingleChoiceIDs, (int)exam.SingChoiceNum); return singleChoices; }
private static IList<int> GetMutilChoicesIDs(ExamDbDataContext dc, BasicExamInfo exam) { var allMutilChoiceIDs = dc.SelectChoiceInfo.Where(p => p.IsSingleSelect == false&&(exam.ChapterID == 0 ? p.CourseID == exam.CourseID : p.ChapterID == exam.ChapterID)).Select(p => p.SelectChoiceID).ToList(); if (allMutilChoiceIDs == null || allMutilChoiceIDs.Count() == 0) return null; int totalCount = allMutilChoiceIDs.Count(); IList<int> mutilChoices = Utility.GetRandomList(allMutilChoiceIDs, (int)exam.MutilChoiceNum); return mutilChoices; }
private static IList<int> GetJudgesIDs(ExamDbDataContext dc, BasicExamInfo exam) { var allJudgeIDs = dc.JudgeInfo.Where(p=>exam.ChapterID == 0 ? p.CourseID == exam.CourseID : p.ChapterID == exam.ChapterID).Select(p => p.JudgeID).ToList(); int totalCount = allJudgeIDs.Count(); IList<int> judges = Utility.GetRandomList(allJudgeIDs, (int)exam.JudgeNum); return judges; }
private static XElement GetChoice(ExamDbDataContext dc, int ChoiceID, SelectChoiceInfo s,string parentName) { XElement choice = new XElement(parentName); choice.SetAttributeValue("choiceID", s.SelectChoiceID); choice.SetAttributeValue("title", s.Title); var choices = dc.ChoiceItemInfo.Where(p => p.SelectChoiceID == ChoiceID).ToList<ChoiceItemInfo>(); //如何打乱次序? IList<int> indexs = new List<int> { 0, 1, 2, 3 }; //假设都是只有四个选项。 IList<int> items = Utility.GetRandomList(indexs, 4);//假设都是只有四个选项。 IList<string> seqs = new List<string> { "A. ","B. ","C. ","D. " }; //假设都是只有四个选项。 for(int i=0;i<4;i++)///如何加上A,B,C,D的序号 { ChoiceItemInfo c = choices[items[i]]; XElement choiceItem = new XElement("ChoiceItem"); choiceItem.SetAttributeValue("choiceItemID",c.ChoiceItemID); choiceItem.SetAttributeValue("title",seqs[i]+c.Title); choiceItem.SetAttributeValue("isSelected", "false"); choice.Add(choiceItem); } return choice; }
/// <summary> /// 建立选择题结点,包括单选和多选 /// </summary> /// <param name="dc"></param> /// <param name="exam"></param> /// <param name="choiceIDs"></param> /// <param name="elementName"></param> /// <returns></returns> private static XElement GetChoices(ExamDbDataContext dc, BasicExamInfo exam, IList<int> choiceIDs,string elementName) { if (choiceIDs == null) return null; XElement choicesElement = new XElement(elementName+"s"); if (elementName == "SingleChoice") { choicesElement.SetAttributeValue("count", exam.SingChoiceNum); choicesElement.SetAttributeValue("eachMark", exam.SingChoiceMark); } else { choicesElement.SetAttributeValue("count", exam.MutilChoiceNum); choicesElement.SetAttributeValue("eachMark", exam.MutilChoiceMark); } choicesElement.SetAttributeValue("getMark", 0); foreach (int choiceID in choiceIDs) { //每一选择题都创建一个xml结点 SelectChoiceInfo s = dc.SelectChoiceInfo.Single(p => p.SelectChoiceID == choiceID); XElement choice = GetChoice(dc, choiceID, s, elementName); choicesElement.Add(choice); } return choicesElement; }
/// <summary> /// 删除试题信息 /// </summary> /// <param name="s">试题实体</param> public static void DeleteQuestion(QuestionInfo s, ExamDbDataContext dc) { AttachInfo<QuestionInfo>(dc.QuestionInfo, s); dc.QuestionInfo.DeleteOnSubmit(s); dc.SubmitChanges(); }
/// <summary> /// 更新基本试卷信息 /// </summary> /// <param name="s">基本试卷实体</param> public static void UpdateBasicExam(BasicExamInfo s, ExamDbDataContext dc) { AttachInfo<BasicExamInfo>(dc.BasicExamInfo, s); dc.SubmitChanges(); // PurgeCacheItems("AllBasicExams_" + s.DepartmentID.ToString()); }
/// <summary> /// 根据ID值返回对应的教师实体 /// </summary> /// <param name="teacherID">id值</param> /// <returns></returns> public static TeacherInfo GetTeacherByID(int teacherID, out ExamDbDataContext d) { ExamDbDataContext dc = DataAccess.CreateDBContext(); var teachers = from t in dc.TeacherInfo where t.TeacherID == teacherID select t; d = dc; if (teachers.Count<TeacherInfo>() == 0) return null; else return ToSingle<TeacherInfo>(teachers); }
/// <summary> /// 删除基本试卷信息 /// </summary> /// <param name="s">基本试卷实体</param> public static void DeleteBasicExam(BasicExamInfo s, ExamDbDataContext dc) { AttachInfo<BasicExamInfo>(dc.BasicExamInfo, s); dc.BasicExamInfo.DeleteOnSubmit(s); dc.SubmitChanges(); }
/// <summary> /// 获取所有教师列表 /// </summary> /// <returns></returns> public static IList<TeacherInfo> GetAllTeachers(out ExamDbDataContext d) { ExamDbDataContext dc = DataAccess.CreateDBContext(); d = dc; return dc.TeacherInfo.ToList<TeacherInfo>(); }
public static void UpdateStudent(StudentInfo s, ExamDbDataContext dc) { AttachInfo<StudentInfo>(dc.StudentInfo, s); dc.SubmitChanges(); PurgeCacheItems("AllStudents"); PurgeCacheItems("StudentsToSelect_" + s.DepartmentID); }
/// <summary> /// 更新教师实体信息 /// </summary> /// <param name="s">需要更新的教师实体</param> public static void UpdateTeacher(TeacherInfo t, ExamDbDataContext dc) { AttachInfo<TeacherInfo>(dc.TeacherInfo, t); dc.SubmitChanges(); }
public static bool CheckIfFinished(string stuNum,int examID) { ExamDbDataContext dc=new ExamDbDataContext(); if (dc.RandomExamInfo.Any(p => p.StuNum==stuNum&&p.BasicExamID==examID) == false) return false;//还没有相关记录 RandomExamInfo r = dc.RandomExamInfo.Where(p => p.StuNum == stuNum && p.BasicExamID == examID).First(); return (bool)r.HasFinished; }
/// <summary> /// 根据指定专业id返回对应选择项, /// </summary> /// <param name="id">选择项id</param> /// <returns></returns> //public static IList<ChoiceItemInfo> GetChoiceItemsByID(int majorID) //{ // ExamDbDataContext dc = DataAccess.CreateDBContext(); // var ChoiceItems = from s in dc.ChoiceItemInfo // where s.MajorID==majorID // select s; // return ToList<ChoiceItemInfo>(ChoiceItems); //} /// <summary> /// 删除选择项信息 /// </summary> /// <param name="s">选择项实体</param> public static void DeleteChoiceItem(ChoiceItemInfo s, ExamDbDataContext dc) { AttachInfo<ChoiceItemInfo>(dc.ChoiceItemInfo, s); dc.ChoiceItemInfo.DeleteOnSubmit(s); dc.SubmitChanges(); }
/// <summary> /// 删除判断题信息 /// </summary> /// <param name="s">判断题实体</param> public static void DeleteJudge(JudgeInfo s, ExamDbDataContext dc) { AttachInfo<JudgeInfo>(dc.JudgeInfo, s); dc.JudgeInfo.DeleteOnSubmit(s); dc.SubmitChanges(); }
/// <summary> /// 更新选择项信息 /// </summary> /// <param name="s">选择项实体</param> public static void UpdateChoiceItem(ChoiceItemInfo s, ExamDbDataContext dc) { AttachInfo<ChoiceItemInfo>(dc.ChoiceItemInfo, s); dc.SubmitChanges(); // PurgeCacheItems("AllChoiceItems_" + s.DepartmentID.ToString()); }
/// <summary> ///更新通知 /// </summary> /// <param name="n">通知实体</param> public static void UpdateNotice(NoticeInfo n, ExamDbDataContext dc) { AttachInfo<NoticeInfo>(dc.NoticeInfo, n); dc.SubmitChanges(); }
/// <summary> /// 删除选择题信息 /// </summary> /// <param name="s">选择题实体</param> public static void DeleteSelectChoice(SelectChoiceInfo s, ExamDbDataContext dc) { AttachInfo<SelectChoiceInfo>(dc.SelectChoiceInfo, s); dc.SelectChoiceInfo.DeleteOnSubmit(s); dc.SubmitChanges(); }
/// <summary> /// 删除一个管理员用户 /// </summary> /// <param name="a"></param> public static void DeleteAdminUser(AdminUserInfo a,ExamDbDataContext dc) { AttachInfo<AdminUserInfo>(dc.AdminUserInfo,a); dc.AdminUserInfo.DeleteOnSubmit(a); dc.SubmitChanges(); }
/// <summary> /// 更新试题信息 /// </summary> /// <param name="s">试题实体</param> public static void UpdateQuestion(QuestionInfo s, ExamDbDataContext dc) { AttachInfo<QuestionInfo>(dc.QuestionInfo, s); dc.SubmitChanges(); // PurgeCacheItems("AllQuestions_" + s.DepartmentID.ToString()); }