Ejemplo n.º 1
0
 public ActionResult Create(TN_Exam model)
 {
     if (ModelState.IsValid)
     {
         if (string.IsNullOrEmpty(model.Content))
         {
             ModelState.AddModelError("Content", "Bạn phải nhập vào tên cuộc thi");
         }
         else if (model.QuestionCount <= 0)
         {
             ModelState.AddModelError("QuestionCount", "Số câu hỏi phải lớn hơn 0");
         }
         var allQuestion = DB.GetContext().TN_Question.Count();
         if (model.QuestionCount > allQuestion)
         {
             ModelState.AddModelError("QuestionCount", "Số câu hỏi vượt quá " + allQuestion + "câu trong ngân hàng đề thi.");
         }
         else
         {
             var listExamQuestion = CreateExamQuestion(model);
             var db = DB.GetContext();
             model.EndDate = model.EndDate.AddDays(1).AddSeconds(-1);
             db.TN_Exam.AddObject(model);
             db.SaveChanges();
             return(RedirectToAction("Index"));
         }
     }
     return(View(model));
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Tạo danh sách câu hỏi cho đợt thi
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        private List <TN_ExamQuestion> CreateExamQuestion(TN_Exam model)
        {
            var db           = DB.GetContext();
            var random       = new Random();
            var listIndex    = new List <int>();
            var listQuestion = db.TN_Question.ToList();

            while (listIndex.Count < model.QuestionCount)
            {
                int index = random.Next(0, listQuestion.Count - 1);
                //Nếu index này chưa có trong danh sách listIndex
                if (!listIndex.Contains(index))
                {
                    listIndex.Add(index);
                }
            }

            var listExamQuestion = new List <TN_ExamQuestion>();

            foreach (var index in listIndex)
            {
                var examQuestion = new TN_ExamQuestion();
                examQuestion.QuestionID = listQuestion[index].ID;
                listExamQuestion.Add(examQuestion);
            }
            return(listExamQuestion);
        }
Ejemplo n.º 3
0
 public ActionResult Edit(int id, TN_Exam model)
 {
     if (ModelState.IsValid)
     {
         if (string.IsNullOrEmpty(model.Content))
         {
             ModelState.AddModelError("Content", "Bạn phải nhập vào tên cuộc thi");
         }
         var allQuestion = DB.GetContext().TN_Question.Count();
         if (model.QuestionCount > allQuestion)
         {
             ModelState.AddModelError("QuestionCount", "Hiện tại trong ngân hàng đề thi chỉ có " + allQuestion + " câu.");
         }
         else
         {
             var db   = DB.GetContext();
             var exam = db.TN_Exam.SingleOrDefault(m => m.ID == id);
             exam.Content       = model.Content;
             exam.StartDate     = model.StartDate;
             exam.EndDate       = model.EndDate;
             exam.QuestionCount = model.QuestionCount;
             exam.Time          = model.Time;
             db.SaveChanges();
             return(RedirectToAction("Edit", new { id = id }));
         }
     }
     return(View(model));
 }