Exemplo n.º 1
0
        public VMTestPage GetQuizData(string language = "en", string attemptId = "")
        {
            bool isHindi = false;

            if ("hi".Equals(language, StringComparison.OrdinalIgnoreCase))
            {
                isHindi = true;
            }

            var testData = _db.GetAllQuestions(_questionDbFileName);

            VMTestPage data = new VMTestPage();

            data.AttemptId = attemptId;
            data.QuizId    = quiz.ID;
            data.Sections  = new List <VMSection>();

            var sections = testData.Select(P => { P.SECTION_NAME = P.SECTION_NAME.ToUpper(); return(P); }).GroupBy(P => P.SECTION_NAME).Select(P => P).ToList();

            int sectionSeq = 0;

            foreach (var item in sections)
            {
                VMSection section = new VMSection();
                section.Id            = Guid.NewGuid().ToString();
                section.Name          = item.Key;
                section.SeqNo         = sectionSeq;
                section.QuestionCount = item.Count();
                section.Questions     = new List <VMQuestion>();

                int questionSeq = 0;

                foreach (var item1 in item.Cast <McqQuestion>().ToList())
                {
                    VMQuestion question = new VMQuestion();
                    question.HasMultipleCorrectAnswer = false;
                    question.HasParagraph             = false;
                    question.Id          = item1.QUESTION_ID;
                    question.Paragraph   = null;
                    question.ParagraphId = Guid.Empty.ToString();
                    question.SeqNo       = questionSeq;

                    if (isHindi)
                    {
                        question.Text    = item1.QUESTION_TEXT_HI;
                        question.Options = new List <VMOption>();
                        question.Options.Add(new VMOption()
                        {
                            Id = item1.OPTION_A_ID, IsCorrect = false, SeqNo = 0, Text = item1.OPTION_A_HI
                        });
                        question.Options.Add(new VMOption()
                        {
                            Id = item1.OPTION_B_ID, IsCorrect = false, SeqNo = 1, Text = item1.OPTION_B_HI
                        });
                        question.Options.Add(new VMOption()
                        {
                            Id = item1.OPTION_C_ID, IsCorrect = false, SeqNo = 2, Text = item1.OPTION_C_HI
                        });
                        question.Options.Add(new VMOption()
                        {
                            Id = item1.OPTION_D_ID, IsCorrect = false, SeqNo = 3, Text = item1.OPTION_D_HI
                        });
                        question.Options.Add(new VMOption()
                        {
                            Id = item1.OPTION_E_ID, IsCorrect = false, SeqNo = 4, Text = item1.OPTION_E_HI
                        });
                    }
                    else
                    {
                        question.Text    = item1.QUESTION_TEXT_EN;
                        question.Options = new List <VMOption>();
                        question.Options.Add(new VMOption()
                        {
                            Id = item1.OPTION_A_ID, IsCorrect = false, SeqNo = 0, Text = item1.OPTION_A_EN
                        });
                        question.Options.Add(new VMOption()
                        {
                            Id = item1.OPTION_B_ID, IsCorrect = false, SeqNo = 1, Text = item1.OPTION_B_EN
                        });
                        question.Options.Add(new VMOption()
                        {
                            Id = item1.OPTION_C_ID, IsCorrect = false, SeqNo = 2, Text = item1.OPTION_C_EN
                        });
                        question.Options.Add(new VMOption()
                        {
                            Id = item1.OPTION_D_ID, IsCorrect = false, SeqNo = 3, Text = item1.OPTION_D_EN
                        });
                        question.Options.Add(new VMOption()
                        {
                            Id = item1.OPTION_E_ID, IsCorrect = false, SeqNo = 4, Text = item1.OPTION_E_EN
                        });
                    }

                    if (quiz.ShuffleOptions)
                    {
                        question.Options = question.Options.OrderBy(P => Guid.NewGuid()).ToList();
                    }

                    section.Questions.Add(question);
                    questionSeq++;
                }
                if (quiz.ShuffleQuestions)
                {
                    section.Questions = section.Questions.OrderBy(P => Guid.NewGuid()).ToList();
                }
                data.Sections.Add(section);
                sectionSeq++;
            }

            return(data);
        }