コード例 #1
0
 public static void 添加试卷设置(试卷设置 试卷设置)
 {
     LoveKaoExamEntities db = new LoveKaoExamEntities();
     if (试卷设置.设置类型 == 1)
     {
         //未设置成练习才能设置成考试
         Guid outsideId = db.试卷内容表.FirstOrDefault(a=>a.ID==试卷设置.试卷内容ID).试卷外部信息ID;
         List<Guid> listContentId = db.试卷内容表.Where(a=>a.试卷外部信息ID==outsideId).Select(a=>a.ID).ToList();
         if (db.练习设置表.Any(a => listContentId.Contains(a.试卷内容ID) && a.是否删除 == false) == true)
         {
             throw new Exception("该试卷已设置成练习,若要设置成考试,请先删除练习设置!");
         }
         //只有出卷人才能设置
         试卷内容 testContent = 试卷内容.试卷内容查询.Where(a => a.ID == 试卷设置.试卷内容ID).First();
         if (testContent.提交人ID != 试卷设置.设置人ID)
         {
             throw new Exception("您无权设置该试卷!");
         }
         //开始时间不能大于结束时间
         if (试卷设置.考试开始时间 >= 试卷设置.考试结束时间)
         {
             throw new Exception("考试开始时间不能大于考试结束时间!");
         }
         考试设置表 examSet = new 考试设置表();
         examSet.ID = Guid.NewGuid();
         examSet.及格条件 = 试卷设置.及格条件;
         examSet.考试结束时间 = 试卷设置.考试结束时间;
         examSet.考试开始时间 = 试卷设置.考试开始时间;
         examSet.考试时长 = 试卷设置.考试时长;
         examSet.试卷内容ID = 试卷设置.试卷内容ID;
         examSet.是否公布考试结果 = 试卷设置.是否公布考试结果;
         examSet.设置人ID = 试卷设置.设置人ID;
         examSet.设置时间 = DateTime.Now;
         examSet.是否删除 = false;
         List<考生范围表> listArea = new List<考生范围表>();
         foreach (Guid examineeId in 试卷设置.考生ID集合)
         {
             考生范围表 area = new 考生范围表();
             area.ID = Guid.NewGuid();
             area.考生ID = examineeId;
             area.相关ID = examSet.ID;
             listArea.Add(area);
         }
         db.考试设置表.AddObject(examSet);
         foreach (var area in listArea)
         {
             db.考生范围表.AddObject(area);
         }
         db.SaveChanges();
     }
     else
     {
         //若试卷已设置成考试,则要在考试结束后或删除考试设置才能设置成练习
         Guid outsideId = db.试卷内容表.FirstOrDefault(a=>a.ID==试卷设置.试卷内容ID).试卷外部信息ID;
         List<Guid> listContentId = db.试卷内容表.Where(a=>a.试卷外部信息ID==outsideId).Select(a => a.ID).ToList();
         考试设置表 examSet = db.考试设置表.Where(a=>listContentId.Contains(a.试卷内容ID)&& a.是否删除 == false)
             .OrderByDescending(a => a.考试结束时间).FirstOrDefault();
         if (examSet != null)
         {
             if (examSet.考试结束时间 > DateTime.Now)
             {
                 throw new Exception("该试卷已设置成考试,若要设置成练习,需在考试结束时间以后或删除考试设置!");
             }
         }
         //只有出卷人才能设置
         试卷内容 testContent = 试卷内容.试卷内容查询.Where(a => a.ID == 试卷设置.试卷内容ID).First();
         if (testContent.提交人ID != 试卷设置.设置人ID)
         {
             throw new Exception("您无权设置该试卷!");
         }
         //若该试卷以前有设置成练习的记录,且被删除了,则更新设置,并恢复删除,若没有,则添加新的设置
         练习设置表 dbExerciseSet = db.练习设置表.FirstOrDefault(a=>a.试卷内容ID==试卷设置.试卷内容ID);
         if (dbExerciseSet == null)
         {
             练习设置表 exerciseSet = new 练习设置表();
             exerciseSet.及格条件 = 试卷设置.及格条件;
             exerciseSet.考试时长 = 试卷设置.考试时长;
             exerciseSet.设置人ID = 试卷设置.设置人ID;
             exerciseSet.设置时间 = DateTime.Now;
             exerciseSet.试卷内容ID = 试卷设置.试卷内容ID;
             exerciseSet.是否删除 = false;
             db.练习设置表.AddObject(exerciseSet);
             List<考生范围表> listArea = new List<考生范围表>();
             foreach (Guid examineeId in 试卷设置.考生ID集合)
             {
                 考生范围表 area = new 考生范围表();
                 area.ID = Guid.NewGuid();
                 area.考生ID = examineeId;
                 area.相关ID = exerciseSet.试卷内容ID;
                 listArea.Add(area);
             }
             foreach (var area in listArea)
             {
                 db.考生范围表.AddObject(area);
             }
         }
         else
         {
             dbExerciseSet.及格条件 = 试卷设置.及格条件;
             dbExerciseSet.考试时长 = 试卷设置.考试时长;
             dbExerciseSet.设置时间 = DateTime.Now;
             dbExerciseSet.是否删除 = false;
             考生范围.更新考生范围(试卷设置.试卷内容ID, 试卷设置.考生ID集合, db);
         }
         db.SaveChanges();
     }
 }
コード例 #2
0
 /// <summary>
 /// 用于向 练习设置表 EntitySet 添加新对象的方法,已弃用。请考虑改用关联的 ObjectSet&lt;T&gt; 属性的 .Add 方法。
 /// </summary>
 public void AddTo练习设置表(练习设置表 练习设置表)
 {
     base.AddObject("练习设置表", 练习设置表);
 }
コード例 #3
0
 public static 练习设置 把练习设置表转化成练习设置(练习设置表 exerciseSet)
 {
     练习设置 练习设置 = Mapper.Create<练习设置表, 练习设置>()(exerciseSet);
     练习设置.设置人ID = exerciseSet.设置人ID;
     练习设置.试卷内容ID = exerciseSet.试卷内容ID;
     return 练习设置;
 }
コード例 #4
0
 /// <summary>
 /// 创建新的 练习设置表 对象。
 /// </summary>
 /// <param name="试卷内容ID">试卷内容ID 属性的初始值。</param>
 /// <param name="考试时长">考试时长 属性的初始值。</param>
 /// <param name="及格条件">及格条件 属性的初始值。</param>
 /// <param name="设置人ID">设置人ID 属性的初始值。</param>
 /// <param name="设置时间">设置时间 属性的初始值。</param>
 /// <param name="是否删除">是否删除 属性的初始值。</param>
 public static 练习设置表 Create练习设置表(global::System.Guid 试卷内容ID, global::System.Int16 考试时长, global::System.Int32 及格条件, global::System.Guid 设置人ID, global::System.DateTime 设置时间, global::System.Boolean 是否删除)
 {
     练习设置表 练习设置表 = new 练习设置表();
     练习设置表.试卷内容ID = 试卷内容ID;
     练习设置表.考试时长 = 考试时长;
     练习设置表.及格条件 = 及格条件;
     练习设置表.设置人ID = 设置人ID;
     练习设置表.设置时间 = 设置时间;
     练习设置表.是否删除 = 是否删除;
     return 练习设置表;
 }