Пример #1
0
        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" }));
        }