Exemple #1
0
        private IEnumerable <QuizInfoForDb> CreateQuizInfoForDb(FillInBlock fillInBlock, string data)
        {
            if (data.Length > MaxFillinblockSize)
            {
                data = data.Substring(0, MaxFillinblockSize);
            }
            var isRightAnswer = true;

            if (fillInBlock.Regexes != null)
            {
                isRightAnswer = fillInBlock.Regexes.Any(regex => regex.Regex.IsMatch(data));
            }
            var blockScore = isRightAnswer ? fillInBlock.MaxScore : 0;

            return(new List <QuizInfoForDb>
            {
                new QuizInfoForDb
                {
                    QuizId = fillInBlock.Id,
                    ItemId = null,
                    IsRightAnswer = isRightAnswer,
                    Text = data,
                    QuizType = typeof(FillInBlock),
                    QuizBlockScore = blockScore,
                    QuizBlockMaxScore = fillInBlock.MaxScore
                }
            });
        }
        private IEnumerable <QuizInfoForDb> CreateQuizInfoForDb(FillInBlock fillInBlock, string data)
        {
            if (data.Length > MAX_FILLINBLOCK_SIZE)
            {
                data = data.Substring(0, MAX_FILLINBLOCK_SIZE);
            }
            var isTrue = fillInBlock.Regexes.Any(regex => regex.Regex.IsMatch(data));

            return(new List <QuizInfoForDb>
            {
                new QuizInfoForDb
                {
                    QuizId = fillInBlock.Id,
                    ItemId = null,
                    IsRightAnswer = isTrue,
                    Text = data,
                    QuizType = typeof(FillInBlock),
                    IsRightQuizBlock = isTrue
                }
            });
        }
        public static System.Web.WebPages.HelperResult QuizBlock(FillInBlock block, BlockRenderContext context)
        {
            return(new System.Web.WebPages.HelperResult(__razor_helper_writer => {
                var value = "";
                var quizRes = "";
                QuizBlockData model = context.GetBlockData(block) ?? new QuizBlockData(new QuizModel(), 1, QuizState.NotPassed);
                if (model.QuizState != QuizState.NotPassed && model.QuizModel.AnswersToQuizes[block.Id].FirstOrDefault() != null)
                {
                    value = model.QuizModel.AnswersToQuizes[block.Id].FirstOrDefault();
                    quizRes = (model.QuizState == QuizState.Total)
                        ? (model.QuizModel.AnswersToQuizes[block.Id][1] == "False" ? "wrong-quiz" : "right-quiz") : "";
                }
                var sample = block.Sample;

                WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\t<div class=\"quiz quiz-block-input\">\r\n\t\t<label ");


                WebViewPage.WriteTo(@__razor_helper_writer, GetGuestOnclick(context.IsGuest));

                WebViewPage.WriteLiteralTo(@__razor_helper_writer, ">\r\n\t\t\t<input autocomplete=\"off\" class=\"form-control ");


                WebViewPage.WriteTo(@__razor_helper_writer, quizRes);

                WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\" value=\"");


                WebViewPage.WriteTo(@__razor_helper_writer, value);

                WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\" id=\'");


                WebViewPage.WriteTo(@__razor_helper_writer, block.Id + "quizBlock");

                WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\' maxlength=\"");


                WebViewPage.WriteTo(@__razor_helper_writer, QuizController.MAX_FILLINBLOCK_SIZE);

                WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\" ");


                WebViewPage.WriteTo(@__razor_helper_writer, GetGuestDisable(context.IsGuest));

                WebViewPage.WriteLiteralTo(@__razor_helper_writer, ">\r\n\t\t</label>\r\n\t</div>\r\n");


                if (model.QuizState == QuizState.Total)
                {
                    WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\t\t<div>Правильный ответ: ");


                    WebViewPage.WriteTo(@__razor_helper_writer, sample);

                    WebViewPage.WriteLiteralTo(@__razor_helper_writer, "</div>\r\n");


                    if (!string.IsNullOrEmpty(block.Explanation))
                    {
                        WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\t\t\t<div class=\"text-muted\">");


                        WebViewPage.WriteTo(@__razor_helper_writer, block.Explanation);

                        WebViewPage.WriteLiteralTo(@__razor_helper_writer, "</div>\r\n");
                    }
                }
            }));
        }