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(); }