public ActionResult EditQuestion(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } QuestionVM question = questionService.GetQuestion(id); if (question == null) { return(HttpNotFound()); } EditQuestionVM questionToEdit = new EditQuestionVM(); questionToEdit.question = question; var categories = questionService.GetAllCategories(); var qTypes = questionService.GetAllQuestionTypes(); questionToEdit.Categories = categories.Select(d => new SelectListItem { Value = d.categoryID.ToString(), Text = d.categoryName }); questionToEdit.questionTypes = qTypes.Select(d => new SelectListItem { Value = d.questionTypeID.ToString(), Text = d.typeName }); return(View(questionToEdit)); }
internal void UpdateQuestion(int id, int correctAnswer, EditQuestionVM newModel) { var oldQuestion = Question.Include(q => q.Answer).SingleOrDefault(q => q.QuestionId == id); oldQuestion.Order = newModel.Order; oldQuestion.QuestionText = newModel.QuestionText; oldQuestion.QuizUnitId = newModel.SelectedQuizUnitId; foreach (var item in oldQuestion.Answer) { Answer.Remove(Answer.Single(a => a.AnswerId == item.AnswerId)); } for (int i = 0; i < newModel.Answers.Length; i++) { oldQuestion.Answer.Add(new Answer { AnswerText = newModel.Answers[i], IsCorrect = i == correctAnswer, Question = oldQuestion, }); } SaveChanges(); }
public void EditQuestion(int testId, int questionId, EditQuestionVM viewModel) { var question = context.Questions.SingleOrDefault(o => o.Id == questionId); question.SortOrder = viewModel.SortOrder; question.QuestionType = viewModel.Type; question.HasComment = viewModel.HasComment; question.QuestionText = viewModel.QuestionText; context.SaveChanges(); }
public ActionResult EditQuestion(EditQuestionVM adminVM) { if (ModelState.IsValid) { questionService.EditQuestion(adminVM.question); return(RedirectToAction("Index", questionService.GetAllQuestions().ToList())); } return(RedirectToAction("Index", questionService.GetAllQuestions().ToList())); }
internal EditQuestionVM GetEditQuestionVMById(int id) { var q = Question .Include(c => c.Answer) .SingleOrDefault(c => c.QuestionId == id); EditQuestionVM model = new EditQuestionVM { Answers = q.Answer.Select(a => a.AnswerText).ToArray(), Order = q.Order, QuestionText = q.QuestionText, SelectedQuizUnitId = (int)q.QuizUnitId, PossibleQuizUnits = QuizUnit.Select(c => new SelectListItem { Text = c.InfoTextHeader, Value = c.QuizUnitId.ToString(), }) .ToArray(), }; return(model); }
public IActionResult EditQuestion(int id, int correctAnswer, EditQuestionVM model) { context.UpdateQuestion(id, correctAnswer, model); return(RedirectToAction(nameof(Index))); }
public IActionResult EditQuestion(int id) { EditQuestionVM model = context.GetEditQuestionVMById(id); return(View(model)); }
public IActionResult EditQuestionSettings(int testId, int questionId, EditQuestionVM viewModel) { repository.EditQuestion(testId, questionId, viewModel); return(RedirectToAction(nameof(EditQuestion), new { testId = testId, questionId = questionId })); }
public EditQuestionVM GetEditQuestionVM(int testId, int questionId) { var thisQuestion = context.Questions .Include(q => q.Answers) .SingleOrDefault(o => o.Id == questionId); var testQuestions = context.Questions.Where(o => o.TestId == testId).ToArray(); int?sortOrder = 0; if (testQuestions.Count() > 0 && testQuestions.Single(o => o.Id == questionId).SortOrder == null) { if (testQuestions.Max(o => o.SortOrder) == null) { sortOrder = 10; } else { sortOrder = testQuestions.Max(o => o.SortOrder) + 10; } } else { sortOrder = testQuestions.Single(o => o.Id == questionId).SortOrder; } var viewModel = new EditQuestionVM() { ItemType = new SelectListItem[] { new SelectListItem { Value = ((int)QuestionType.SingleChoice).ToString(), Text = "Single Choice" }, new SelectListItem { Value = ((int)QuestionType.MultipleChoice).ToString(), Text = "Multiple Choice" }, new SelectListItem { Value = ((int)QuestionType.TextSingleLine).ToString(), Text = "Single Line Text" }, new SelectListItem { Value = ((int)QuestionType.TextMultiLine).ToString(), Text = "Multi Line Text" } }, TestId = testId, QuestionText = thisQuestion.QuestionText, QuestionId = questionId, Type = thisQuestion.QuestionType, //true: Har vi mer än 0 frågor och inte skickat in ett eget sort-värde => man kollar på högsta sortordern och plussar på 10 //false: Om vi har 0 frågor eller skickar in ett eget värde => sätts värdet till eget värde SortOrder = sortOrder, QuestionFormVM = new QuestionFormVM() { QuestionText = thisQuestion.QuestionText, QuestionType = thisQuestion.QuestionType, SortOrder = thisQuestion.SortOrder, HasComment = thisQuestion.HasComment, IsInEditQuestion = true }, HasComment = thisQuestion.HasComment, }; if ((viewModel.Type == QuestionType.MultipleChoice) || (viewModel.Type == QuestionType.SingleChoice)) { viewModel.AnswerDetailVMs = thisQuestion.Answers .OrderBy(o => o.SortOrder) .Select(o => new AnswerDetailVM() { AnswerId = o.Id, AnswerText = o.AnswerText, IsChecked = o.IsCorrect, ShowAsCorrect = o.IsCorrect, QuestionType = thisQuestion.QuestionType, SortOrder = o.SortOrder }).ToArray(); } return(viewModel); }