public ActionResult AddQuestionClosedAnswer([Bind(Include = "Text, Grade, Subject, Points, numberInTest, Answer1Text, Answer1IsTrue, Answer2Text, Answer2IsTrue, Answer3Text, Answer3IsTrue, Answer4Text, Answer4IsTrue")] AddQuestionClosedAnswerBm bind)
 {
     if (this.ModelState.IsValid)
     {
         var userId = this.User.Identity.GetUserId();
         this.service.AddQuestionClosedAnswer(bind, userId);
         return(this.RedirectToAction("Index", "Home"));
     }
     return(this.View());
 }
        public void AddQuestionClosedAnswer(AddQuestionClosedAnswerBm bind, string userId)
        {
            List <ClosedAnswer> answers = new List <ClosedAnswer>();

            answers.AddRange(new List <ClosedAnswer>()
            {
                new ClosedAnswer(bind.Answer1Text, bind.Answer1IsTrue),
                new ClosedAnswer(bind.Answer2Text, bind.Answer2IsTrue),
                new ClosedAnswer(bind.Answer3Text, bind.Answer3IsTrue),
                new ClosedAnswer(bind.Answer4Text, bind.Answer4IsTrue),
            });

            if (answers.Count(x => x.IsTrue) > 1)
            {
                throw new ArgumentOutOfRangeException("True answer must be only one!");
            }

            User user = this.Context.Users.Entities.FirstOrDefault(c => c.Id == userId);
            QuestionClosedAnswer question = new QuestionClosedAnswer(bind.Text, bind.Points, bind.Grade, bind.Subject, bind.NumberInTest, user, answers);

            this.Context.ClosedAnswers.AddRange(answers);
            this.Context.Questions.Add(question);
            this.Context.SaveChanges();
        }