예제 #1
0
        public async Task <IActionResult> Edit(QuestionEditVM model)
        {
            if (ModelState.IsValid)
            {
                var question = await _context.Question.SingleOrDefaultAsync(m => m.Id == model.Id);

                try
                {
                    if (null == question)
                    {
                        return(NotFound());
                    }

                    //var options = new List<QuestionOption>();
                    //foreach (var item in model.Options)
                    //{
                    //    options.Add(new QuestionOption() {
                    //        Description = item.Description,
                    //        IsAnswer = item.IsAnswer
                    //    });
                    //}

                    question.Id           = model.Id;
                    question.QuestionText = model.Question;
                    question.AnswerText   = model.Answer;
                    //question.QuestionOptions = options;
                    question.Options = model.Options.Select(opt => new QuestionOption()
                    {
                        Description = opt.Description,
                        IsAnswer    = opt.IsAnswer
                    }).ToList();
                    question.AnswerId = model.Options.SingleOrDefault(id => id.IsAnswer).Id;

                    _context.Update(question);

                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!QuestionExists(question.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }

            model.ExamTypes = new SelectList(_context.ExamTypes, "Id", "Name", model.ExamTypeId);
            model.Subjects  = new SelectList(_context.Subjects, "Id", "Name", model.SubjectId);

            return(View(model));
        }
예제 #2
0
        // GET: Question/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var question = await _context.Question.SingleOrDefaultAsync(m => m.Id == id);

            if (question == null)
            {
                return(NotFound());
            }

            //var options = new List<QuestionOptionEditVM>();
            //foreach (var item in question.QuestionOptions)
            //{
            //    options.Add(new QuestionOptionEditVM()
            //    {
            //        Id = item.Id,
            //        Description = item.Description,
            //        IsAnswer = item.IsAnswer
            //    });
            //}

            var model = new QuestionEditVM()
            {
                Id       = question.Id,
                Question = question.QuestionText,
                Points   = question.Points,
                Answer   = question.AnswerText,
                //Options = options;
                Options = question.Options.Select(opt => new QuestionOptionEditVM()
                {
                    Id          = opt.Id,
                    Description = opt.Description,
                    IsAnswer    = opt.IsAnswer
                }).ToList(),
                ExamTypes = new SelectList(_context.ExamTypes, "Id", "Name", question.ExamTypeId),
                Subjects  = new SelectList(_context.Subjects, "Id", "Name", question.SubjectId)
            };

            return(View(question));
        }