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));
        }
Beispiel #2
0
        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()));
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        public IActionResult EditQuestion(int id, int correctAnswer, EditQuestionVM model)
        {
            context.UpdateQuestion(id, correctAnswer, model);

            return(RedirectToAction(nameof(Index)));
        }
Beispiel #7
0
        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);
        }