public void SaveAnswer(QuestionQuiz questionQuiz) { var ans = new Repository <Answer>(); var eAnswer = ans.Filter(q => q.UserId == UserId && q.QuestionId == questionQuiz.QuestionId && q.GroupId == questionQuiz.GroupId).FirstOrDefault(); if (eAnswer == null) { var aAnswer = new Answer() { GroupId = questionQuiz.GroupId, QuestionId = questionQuiz.QuestionId, UserId = UserId, UserOptionId = questionQuiz.UserOptionId }; aAnswer.Groups = ans.AssessmentContext.groups.FirstOrDefault(t => t.Id == aAnswer.GroupId); aAnswer.Organization = ans.AssessmentContext.UserInfo.FirstOrDefault(t => t.Id == aAnswer.UserId); aAnswer.Questiones = ans.AssessmentContext.questions.FirstOrDefault(t => t.Id == aAnswer.QuestionId); ans.Create(aAnswer); } else { eAnswer.Groups = ans.AssessmentContext.groups.FirstOrDefault(t => t.Id == eAnswer.GroupId); eAnswer.Organization = ans.AssessmentContext.UserInfo.FirstOrDefault(t => t.Id == eAnswer.UserId); eAnswer.Questiones = ans.AssessmentContext.questions.FirstOrDefault(t => t.Id == eAnswer.QuestionId); eAnswer.UserOptionId = questionQuiz.UserOptionId; ans.Update(eAnswer); } ans.SaveChanges(); }
public ActionResult QuizGroup(FormCollection questionCode) { int groupId = 0; //string result = string.Empty; //if (questionCode["Origin"] != null && questionCode["Origin"].Equals("Result")) //{ // groupId = int.Parse(questionCode["Id"].ToString()); // var groupQuiz = GetGroupQuiz(--groupId); // return RedirectToAction("QuizGroup", new { quiz = groupQuiz }); //} //else //{ bool isAction = false; var groupQuiz = new List <QuestionQuiz>(); foreach (string user in questionCode.Keys) { if (user == "hdnaction") { isAction = questionCode["hdnaction"].Equals("Previous", StringComparison.OrdinalIgnoreCase) ? true : false; continue; } if (user == "UIGroupId") { continue; } string[] values = questionCode[user].Split('~'); var quiz = new QuestionQuiz(); quiz.GroupId = Convert.ToInt16(values[0]); quiz.QuestionId = Convert.ToInt16(values[1]); quiz.UserOptionId = Convert.ToInt16(values[2]); quiz.UIGroupId = Convert.ToInt16(values[3]); groupQuiz.Add(quiz); } this.groupQuizManager = new GroupQuizManager(this.UserId); if (groupQuiz.Count == 0) { groupId = int.Parse(questionCode[1]); } else { groupId = groupQuiz[0].GroupId; } this.groupQuizManager.AllQuestions = (List <GroupQuiz>)Session["AllGroupQuestions"]; var lQuestions = this.groupQuizManager.GetMandatoryQuestion(groupId); this.groupQuizManager.SaveAnswer(groupQuiz); bool isMandatoryAnswerd = true; foreach (var q in lQuestions) { if (groupQuiz == null || groupQuiz.Count == 0 || !groupQuiz.Exists(t => t.QuestionId == q.Questions.QuestionId)) { ViewBag.AssessmentName = q.AssessmentName; isMandatoryAnswerd = false; break; } } if (isMandatoryAnswerd) { groupId = groupQuiz.First().UIGroupId; if (!isAction) { groupId = groupId + 1; } else { groupId = Convert.ToInt16(questionCode["UIGroupId"].ToString()); groupId = groupId - 1; } if (groupId == 0) { groupId = 1; } } else { groupId = groupQuiz.Count > 0 ? groupQuiz.First().UIGroupId : groupId; ViewBag.Msg = "Please Fill the Mandatroy Questions"; } this.groupQuizManager.AllQuestions = (List <GroupQuiz>)Session["AllGroupQuestions"]; if (this.groupQuizManager.MoveToNextGroup(groupId)) { var question = this.groupQuizManager.LoadQuiz(groupId); ViewBag.AssessmentName = question.AssessmentName; return(View(question)); } //} return(RedirectToAction("ShowResults", new { origin = "Group" })); }
public ActionResult QuizOne(FormCollection questionCode) { bool isAction = false; var quiz = new QuestionQuiz(); foreach (string user in questionCode.Keys) { if (user == "hdnaction") { isAction = questionCode["hdnaction"].Equals("Previous", StringComparison.OrdinalIgnoreCase) ? true : false; continue; } if (user == "Questions.UIQId") { quiz.UIQId = Convert.ToInt16(questionCode["Questions.UIQId"]); continue; } string[] values = questionCode[user].Split('~'); quiz.GroupId = Convert.ToInt16(values[0]); quiz.QuestionId = Convert.ToInt16(values[1]); quiz.UserOptionId = Convert.ToInt16(values[2]); quiz.UIQId = Convert.ToInt16(values[3]); } int qId = 0; this.quizManager = new QuizManager(this.UserId); this.quizManager.AllQuestions = (List <QuestionAnswer>)Session["AllQuestions"]; bool isAnswered = quiz.UserOptionId > 0 ? true : false; this.quizManager.SaveAnswer(quiz); bool isMandatory = true; isMandatory = this.quizManager.IsMandatoryQuestion(quiz.UIQId); if (isMandatory && quiz.UserOptionId == 0) { qId = quiz.UIQId; ViewBag.Msg = "Please Fill the Mandatroy Questions"; } else { qId = quiz.UIQId; if (!isAction) { qId = qId + 1; } else { qId = qId - 1; } if (qId == 0) { qId = 1; } } if (this.quizManager.MoveToNextQuestion(qId)) { var question = this.quizManager.LoadQuiz(qId); return(View(question)); } return(RedirectToAction("ShowResults", new { id = qId, origin = "Questions" })); }