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)); }
/// <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); }
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)); }