Exemple #1
0
        public async Task <IActionResult> Edit(int id, EditQuestionInputModel input)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(input));
            }

            await this.questionsService.UpdateAsync(input);

            this.TempData["Message"] = "Question successfully updated!";

            return(this.RedirectToAction(nameof(this.Details), new { id }));
        }
Exemple #2
0
        public async Task UpdateAsync(EditQuestionInputModel input)
        {
            Question question = this.questionsRepository.All().FirstOrDefault(q => q.Id == input.Id);

            question.Text   = new HtmlSanitizer().Sanitize(input.Text);
            question.Points = input.Points;

            Choice oldChoice = this.choicesRepository.All().FirstOrDefault(c => c.QuestionId == question.Id && c.IsCorrect);

            oldChoice.IsCorrect = false;

            foreach (var choice in input.Choices.Where(c => c.Text != null))
            {
                Choice dbChoice = this.choicesRepository.All().FirstOrDefault(c => c.Id == choice.Id);
                dbChoice.Text = choice.Text;
            }

            if (input.CorrectAnswerOption == "A")
            {
                Choice choice = this.choicesRepository.All().Where(c => c.QuestionId == question.Id).FirstOrDefault();
                choice.IsCorrect = true;
            }
            else if (input.CorrectAnswerOption == "B")
            {
                Choice choice = this.choicesRepository.All().Where(c => c.QuestionId == question.Id).Skip(1).FirstOrDefault();
                choice.IsCorrect = true;
            }
            else if (input.CorrectAnswerOption == "C")
            {
                Choice choice = this.choicesRepository.All().Where(c => c.QuestionId == question.Id).Skip(2).FirstOrDefault();
                choice.IsCorrect = true;
            }
            else
            {
                Choice choice = this.choicesRepository.All().Where(c => c.QuestionId == question.Id).Skip(3).FirstOrDefault();
                choice.IsCorrect = true;
            }

            await this.questionsRepository.SaveChangesAsync();

            await this.choicesRepository.SaveChangesAsync();
        }
Exemple #3
0
        public IActionResult Edit(int id)
        {
            EditQuestionInputModel input = this.questionsService.GetById <EditQuestionInputModel>(id);

            return(this.View(input));
        }