コード例 #1
0
ファイル: Message.cs プロジェクト: djzblue/ExamOnline
        /// <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);
        }
コード例 #2
0
ファイル: BasicExam.cs プロジェクト: djzblue/ExamOnline
 /// <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);
 }
コード例 #3
0
ファイル: Subject.cs プロジェクト: djzblue/ExamOnline
 /// <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;
 }
コード例 #4
0
ファイル: RandomExam.cs プロジェクト: djzblue/ExamOnline
        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;
        
        }
コード例 #5
0
ファイル: AdminUser.cs プロジェクト: djzblue/ExamOnline
 /// <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);
 }
コード例 #6
0
ファイル: Judge.cs プロジェクト: djzblue/ExamOnline
        /// <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());
        }
コード例 #7
0
ファイル: Student.cs プロジェクト: djzblue/ExamOnline
        /// <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;
            }
        }
コード例 #8
0
ファイル: Student.cs プロジェクト: djzblue/ExamOnline
        /// <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);

        }
コード例 #9
0
ファイル: RandomExam.cs プロジェクト: djzblue/ExamOnline
        ///// <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;
        }
コード例 #10
0
ファイル: RandomExam.cs プロジェクト: djzblue/ExamOnline
        /// <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);
        }
コード例 #11
0
ファイル: RandomExam.cs プロジェクト: djzblue/ExamOnline
        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;
        }
コード例 #12
0
ファイル: RandomExam.cs プロジェクト: djzblue/ExamOnline
        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;
        }
コード例 #13
0
ファイル: RandomExam.cs プロジェクト: djzblue/ExamOnline
 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;
 }
コード例 #14
0
ファイル: RandomExam.cs プロジェクト: djzblue/ExamOnline
        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;
        }
コード例 #15
0
ファイル: RandomExam.cs プロジェクト: djzblue/ExamOnline
        /// <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;
        }
コード例 #16
0
ファイル: Question.cs プロジェクト: djzblue/ExamOnline
 /// <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();
 }
コード例 #17
0
ファイル: BasicExam.cs プロジェクト: djzblue/ExamOnline
        /// <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());
        }
コード例 #18
0
ファイル: Teacher.cs プロジェクト: djzblue/ExamOnline
 /// <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);
 }
コード例 #19
0
ファイル: BasicExam.cs プロジェクト: djzblue/ExamOnline
 /// <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();
 }
コード例 #20
0
ファイル: Teacher.cs プロジェクト: djzblue/ExamOnline
 /// <summary>
 /// 获取所有教师列表
 /// </summary>
 /// <returns></returns>
 public static IList<TeacherInfo> GetAllTeachers(out ExamDbDataContext d)
 {
     ExamDbDataContext dc = DataAccess.CreateDBContext();
     d = dc;
     return dc.TeacherInfo.ToList<TeacherInfo>();
 }
コード例 #21
0
ファイル: Student.cs プロジェクト: djzblue/ExamOnline
        public static void UpdateStudent(StudentInfo s, ExamDbDataContext dc)
        {

            AttachInfo<StudentInfo>(dc.StudentInfo, s);
            dc.SubmitChanges();
            PurgeCacheItems("AllStudents");
            PurgeCacheItems("StudentsToSelect_" + s.DepartmentID);
        }
コード例 #22
0
ファイル: Teacher.cs プロジェクト: djzblue/ExamOnline
 /// <summary>
 /// 更新教师实体信息
 /// </summary>
 /// <param name="s">需要更新的教师实体</param>
 public static void UpdateTeacher(TeacherInfo t,  ExamDbDataContext dc)
 {
    AttachInfo<TeacherInfo>(dc.TeacherInfo, t);
     dc.SubmitChanges();
 }
コード例 #23
0
ファイル: Utility.cs プロジェクト: djzblue/ExamOnline
        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;

        }
コード例 #24
0
ファイル: Choice.cs プロジェクト: djzblue/ExamOnline
        /// <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();
        }
コード例 #25
0
ファイル: Judge.cs プロジェクト: djzblue/ExamOnline
 /// <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();
 }
コード例 #26
0
ファイル: Choice.cs プロジェクト: djzblue/ExamOnline
        /// <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());
        }
コード例 #27
0
ファイル: Message.cs プロジェクト: djzblue/ExamOnline
 /// <summary>
 ///更新通知
 /// </summary>
 /// <param name="n">通知实体</param>
 public static void UpdateNotice(NoticeInfo n, ExamDbDataContext dc)
 {
     AttachInfo<NoticeInfo>(dc.NoticeInfo, n);
     dc.SubmitChanges();
 }
コード例 #28
0
ファイル: Choice.cs プロジェクト: djzblue/ExamOnline
 /// <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();
 }
コード例 #29
0
ファイル: AdminUser.cs プロジェクト: djzblue/ExamOnline
 /// <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();        
  }
コード例 #30
0
ファイル: Question.cs プロジェクト: djzblue/ExamOnline
        /// <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());
        }