Ejemplo n.º 1
0
 public ActionResult Create()
 {
     using (var dbContext = new SATEntities())
     {
         var hasInput = true;
         var textType = new SelectListItem()
         {
             Value = "1", Text = "Nhập vào"
         };
         var choiceType = new SelectListItem()
         {
             Value = "0", Text = "Chọn câu", Disabled = hasInput ? true : false
         };
         ViewBag.AnswerType = new SelectList(new List <SelectListItem>()
         {
             choiceType, textType
         }, "Value", "Text", hasInput ? "1" : "0");
         var listType = new SelectList(dbContext.SATTypes.ToList(), "TypeID", "TypeName");
         ViewBag.Type = listType;
         List <SelectListItem> listCalc = UseCalcSelectList();
         ViewBag.UseCalc = new SelectList(listCalc, "Value", "Text");
         var model = new QuestionCreateViewModel();
         model.Status      = false;
         ViewBag.FormValue = JsonConvert.SerializeObject(model);
         var listExamContent = new ExamContentSelectList().GetExamContentSelectList();
         ViewBag.ExamContentID = listExamContent;
         ViewBag.IsInputAnswer = false;
         return(View("CreateWithAnswer", model));
     }
 }
Ejemplo n.º 2
0
        public ActionResult Edit(int id)
        {
            using (var db = new SATEntities())
            {
                ViewBag.EditQuestion = true;
                var hasInput = true;
                var textType = new SelectListItem()
                {
                    Value = "1", Text = "Nhập vào"
                };
                var choiceType = new SelectListItem()
                {
                    Value = "0", Text = "Chọn câu", Disabled = hasInput ? true : false
                };
                ViewBag.AnswerType = new SelectList(new List <SelectListItem>()
                {
                    choiceType, textType
                }, "Value", "Text", hasInput ? "1" : "0");
                var questionEntity = db.SATQuestions.Find(id);


                var model = questionEntity.Map <QuestionEditViewModel>();
                model.Answers = new QuestionEditViewModel(id).Answers;

                ViewBag.FormValue = JsonConvert.SerializeObject(model, new JsonSerializerSettings {
                    ReferenceLoopHandling = ReferenceLoopHandling.Ignore
                });
                var listType = new SelectList(db.SATTypes.ToList(), "TypeID", "TypeName", questionEntity.TypeID);
                ViewBag.Type = listType;
                List <SelectListItem> listCalc = UseCalcSelectList();
                //ViewBag.UseCalc = new SelectList(listCalc, "Value", "Text", questionEntity.UserCalculator);
                var examContentID   = questionEntity.ExamContentID != null ? questionEntity.ExamContentID.Value : 0;
                var listExamContent = new ExamContentSelectList().GetExamContentSelectList(examContentID);
                ViewBag.SelectedID    = examContentID;
                ViewBag.ExamContentID = listExamContent;
                if (model.Answers?.Count > 1)
                {
                    ViewBag.IsInputAnswer = false;
                }
                else
                {
                    ViewBag.IsInputAnswer = true;
                }

                return(View("EditWithAnswer", model));
            }
        }
Ejemplo n.º 3
0
        public ActionResult Edit(int id, QuestionEditViewModel model, List <SATAnswer> Answers)
        {
            try
            {
                using (var db = new SATEntities())
                {
                    var questionEntity = db.SATQuestions.Find(id);
                    ViewBag.EditQuestion = true;
                    var hasInput = true;
                    var textType = new SelectListItem()
                    {
                        Value = "1", Text = "Nhập vào"
                    };
                    var choiceType = new SelectListItem()
                    {
                        Value = "0", Text = "Chọn câu", Disabled = hasInput ? true : false
                    };
                    ViewBag.AnswerType = new SelectList(new List <SelectListItem>()
                    {
                        choiceType, textType
                    }, "Value", "Text", hasInput ? "1" : "0");
                    var examContentID = questionEntity.ExamContentID != null ? questionEntity.ExamContentID.Value : 0;
                    ViewBag.SelectedID = examContentID;
                    var listExamContent = new ExamContentSelectList().GetExamContentSelectList(examContentID);
                    ViewBag.ExamContentID = listExamContent;
                    var listType = new SelectList(db.SATTypes.ToList(), "TypeID", "TypeName", questionEntity.TypeID);
                    ViewBag.Type = listType;

                    List <SelectListItem> listCalc = UseCalcSelectList();
                    ViewBag.UseCalc = new SelectList(listCalc, "Value", "Text");
                    if (!ModelState.IsValid)
                    {
                        if (Session["IsInputAnswer"] != null)
                        {
                            ViewBag.IsInputAnswer = (bool)Session["IsInputAnswer"];
                        }
                        ViewBag.FormValue = JsonConvert.SerializeObject(model);
                        return(View("EditWithAnswer", model));
                    }


                    questionEntity.ExamContentID   = model.ExamContentID;
                    questionEntity.HasInputAnswer  = model.HasInputAnswer;
                    questionEntity.QuestionContent = model.QuestionContent;
                    questionEntity.QuestionNo      = model.QuestionNo;
                    questionEntity.Status          = model.Status;
                    questionEntity.Title           = model.Title;
                    questionEntity.TypeID          = model.TypeID;



                    var entry = db.Entry <SATQuestion>(questionEntity);

                    entry.State = System.Data.Entity.EntityState.Modified;

                    if (Answers.Count == 1)
                    {
                        var qID   = Answers[0].QuestionID;
                        var _answ = Answers[0];
                        var other = db.SATAnswers.Where(a => a.QuestionID == qID && a.ID != _answ.ID).ToList();
                        foreach (var item in other)
                        {
                            item.Status = false;
                            var _entry = db.Entry <SATAnswer>(item);
                            _entry.State = System.Data.Entity.EntityState.Modified;
                        }
                    }
                    foreach (var item in Answers)
                    {
                        var _entity = db.SATAnswers.Find(item.ID);
                        _entity.AnswerContent = item.AnswerContent;
                        _entity.AnswerType    = item.AnswerType;
                        _entity.IsRightAnswer = item.IsRightAnswer;
                        _entity.Mark          = item.Mark;
                        _entity.QuestionID    = id;
                        _entity.Status        = item.Status;
                        _entity.Explanation   = item.Explanation;

                        var _entry = db.Entry <SATAnswer>(_entity);
                        _entry.State = System.Data.Entity.EntityState.Modified;
                    }
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
            }
            catch (Exception ex)
            {
                if (Session["IsInputAnswer"] != null)
                {
                    ViewBag.IsInputAnswer = (bool)Session["IsInputAnswer"];
                }
                ViewBag.FormValue = JsonConvert.SerializeObject(model);
                return(View("EditWithAnswer", model));
            }
        }
Ejemplo n.º 4
0
        public ActionResult Create(QuestionCreateViewModel model, List <SATAnswer> Answers, string btnSave)
        {
            var db       = new SATEntities();
            var listType = new SelectList(db.SATTypes.ToList(), "TypeID", "TypeName");

            ViewBag.Type = listType;
            List <SelectListItem> listCalc = UseCalcSelectList();

            ViewBag.UseCalc = new SelectList(listCalc, "Value", "Text");
            var listExamContent = new ExamContentSelectList().GetExamContentSelectList();

            ViewBag.ExamContentID = listExamContent;
            db.Dispose();
            var hasInput = true;
            var textType = new SelectListItem()
            {
                Value = "1", Text = "Nhập vào"
            };
            var choiceType = new SelectListItem()
            {
                Value = "0", Text = "Chọn câu", Disabled = hasInput ? true : false
            };

            ViewBag.AnswerType = new SelectList(new List <SelectListItem>()
            {
                choiceType, textType
            }, "Value", "Text", hasInput ? "1" : "0");
            try
            {
                if (!ModelState.IsValid)
                {
                    ViewBag.FormValue = JsonConvert.SerializeObject(model);
                    if (Session["IsInputAnswer"] != null)
                    {
                        ViewBag.IsInputAnswer = (bool)Session["IsInputAnswer"];
                    }

                    return(View("CreateWithAnswer", model));
                }
                using (var dbContext = new SATEntities())
                {
                    var questionModel = new SATQuestion();
                    questionModel.ExamContentID   = model.ExamContentID;
                    questionModel.HasInputAnswer  = model.HasInputAnswer;
                    questionModel.QuestionContent = model.QuestionContent;
                    questionModel.QuestionNo      = model.QuestionNo;
                    questionModel.Status          = btnSave == "Tạo mới & Đăng" ? true : false;
                    questionModel.Title           = model.Title;
                    questionModel.TypeID          = model.TypeID;


                    dbContext.SATQuestions.Add(questionModel);
                    dbContext.SaveChanges();

                    var lastest = dbContext.SATQuestions.Max(q => q.ID);
                    foreach (var item in Answers)
                    {
                        item.QuestionID = lastest;
                    }
                    dbContext.SATAnswers.AddRange(Answers);
                    dbContext.SaveChanges();
                }
                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                return(View("CreateWithAnswer", model));
            }
        }