Example #1
0
        public ActionResult Save(QuestionDetailViewModel viewModel)
        {
            var userId         = User.Identity.GetUserId();
            var existingAnswer =
                _unitOfWork.AnswerRepository.SingleOrDefault(
                    a => a.QuestionId == viewModel.Question.Id && a.AppUserId == userId);
            var isNewAnswer = existingAnswer == null;

            var answerToSave = UpdateOrAddAnswer(viewModel, existingAnswer);

            try
            {
                _unitOfWork.Complete();

                if (isNewAnswer)
                {
                    _unitOfWork.ActivityRepository.Add(
                        Activity.ActivityAnswerQuestion(userId, viewModel.Question.Id, answerToSave.Id));
                    _unitOfWork.Complete();
                }
            }
            catch (DbEntityValidationException ex)
            {
                var error = ex.EntityValidationErrors?.FirstOrDefault()?.ValidationErrors?.FirstOrDefault();
                ModelState.AddModelError("", error?.ErrorMessage);
                return(View("~/Views/Question/Detail.cshtml", viewModel));
            }

            return(RedirectToAction("Detail", "Answer", new { id = answerToSave.Id }));
        }
Example #2
0
 public void ActivityAnswerQuestion_questionIdOrAnswerIdIsZeroOrNegativeOrUserIdIsNull_ShouldThrowArgumentException()
 {
     Assert.Throws <ArgumentException>(() => Activity.ActivityAnswerQuestion("1", 0, 1));
     Assert.Throws <ArgumentException>(() => Activity.ActivityAnswerQuestion("1", -1, 1));
     Assert.Throws <ArgumentException>(() => Activity.ActivityAnswerQuestion("1", 1, 0));
     Assert.Throws <ArgumentException>(() => Activity.ActivityAnswerQuestion("1", 1, -1));
     Assert.Throws <ArgumentNullException>(() => Activity.ActivityAnswerQuestion(null, 1, 1));
 }
Example #3
0
        public static Activity AddTestActivityAnswerQuestionToDatabase(this iKnowContext context, int questionId, int answerId)
        {
            var activity = Activity.ActivityAnswerQuestion(context.Users.First().Id, questionId, answerId);

            return(AddActivity(context, activity));
        }