示例#1
0
        // GET: ttn_content/ExamContent/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            SATExamContent sATExamContent = db.SATExamContents.Find(id);

            if (sATExamContent == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ExamFormID = new SelectList(db.SATExamForms.Where(ef => ef.Status == true), "ID", "Title", sATExamContent.ExamFormID);
            var listUnSetExamContentIDQuestion = new SelectList(db.SATQuestions.Where(q => q.ExamContentID == null && q.SATWritingUnderlineTexts.Any(u => u.QuestionID == q.ID) == false).ToList(), "ID", "Title");

            ViewBag.ListQuestion = listUnSetExamContentIDQuestion;
            var viewModel = new ExamContentEditViewModel(sATExamContent);

            return(View(viewModel));
        }
示例#2
0
        public ActionResult Edit(ExamContentEditViewModel viewModel, int id, FormCollection collection)
        {
            var contentLines = collection.GetValues("inputLine") != null?collection.GetValues("inputLine").ToList() : new List <string>();

            ViewBag.ContentLines = contentLines;
            ViewBag.ExamFormID   = new SelectList(db.SATExamForms, "ID", "Title", viewModel.ExamContent.ExamFormID);
            var listUnSetExamContentIDQuestion = new SelectList(db.SATQuestions.Where(q => q.ExamContentID == null && q.SATWritingUnderlineTexts.Any(u => u.QuestionID == q.ID) == false).ToList(), "ID", "Title");

            ViewBag.ListQuestion = listUnSetExamContentIDQuestion;
            if (ModelState.IsValid)
            {
                using (var dbTransaction = db.Database.BeginTransaction())
                {
                    try
                    {
                        if (viewModel.ContentLines == null && contentLines.Count > 0)
                        {
                            //delete old lines
                            var oldLines = db.SATContentLines.Where(l => l.ExamContentID == id);
                            db.SATContentLines.RemoveRange(oldLines);
                            db.SaveChanges();
                            //add new lines
                            var index = 0;
                            foreach (var item in contentLines)
                            {
                                var line = new SATContentLine();

                                line.LineIndex = index;
                                index          = (index + 1);

                                line.LineText      = item;
                                line.ExamContentID = id;
                                line.rowguid       = Guid.NewGuid();
                                db.SATContentLines.Add(line);
                                db.SaveChanges();
                            }
                        }
                        else if (viewModel.ContentLines != null)

                        {
                            var index = 0;
                            foreach (var item in viewModel.ContentLines)
                            {
                                item.LineIndex = index;
                                index          = (index + 1);

                                db.Entry(item).State = EntityState.Modified;
                                db.SaveChanges();
                            }
                        }

                        db.Entry(viewModel.ExamContent).State = EntityState.Modified;
                        db.SaveChanges();
                        dbTransaction.Commit();
                        return(RedirectToAction("Index"));
                    }
                    catch (Exception ex)
                    {
                        dbTransaction.Rollback();
                        ViewBag.ExamFormID   = new SelectList(db.SATExamForms.Where(ef => ef.Status == true), "ID", "Title", viewModel.ExamContent.ExamFormID);
                        ViewBag.ContentLines = contentLines;

                        return(View(viewModel));
                    }
                }
            }

            return(View(viewModel));
        }