Esempio n. 1
0
        /// <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());
        }
Esempio n. 2
0
        ///// <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;
        }
Esempio n. 3
0
        ///生成学生随机试卷的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;
        
        }
Esempio n. 4
0
        /// <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;
        }
Esempio n. 5
0
		private void detach_RandomExamInfo(RandomExamInfo entity)
		{
			this.SendPropertyChanging();
			entity.BasicExamInfo = null;
		}