public static System.Web.WebPages.HelperResult Block(AbstractQuestionBlock block, BlockRenderContext context) { return(new System.Web.WebPages.HelperResult(__razor_helper_writer => { var mark = ""; var style = ""; QuizBlockData model = context.GetBlockData(block); if (model.QuizState != QuizState.NotPassed) { if (model.QuizModel != null && model.QuizModel.ResultsForQuizes != null) { bool res; res = model.QuizModel.ResultsForQuizes.TryGetValue(block.Id, out res) && res; mark = "glyphicon " + (res ? "glyphicon-ok" : "glyphicon-remove"); style = "color: " + (res ? "green" : "red"); } } WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\t<h4><i class=\""); WebViewPage.WriteTo(@__razor_helper_writer, mark); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\" style=\""); WebViewPage.WriteTo(@__razor_helper_writer, style); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\"></i> "); WebViewPage.WriteTo(@__razor_helper_writer, block.QuestionIndex); WebViewPage.WriteLiteralTo(@__razor_helper_writer, ". "); WebViewPage.WriteTo(@__razor_helper_writer, block.Text.RenderTex()); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "</h4>\r\n"); WebViewPage.WriteTo(@__razor_helper_writer, QuizBlock((dynamic)block, context)); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\t<hr class=\"quiz-block-delimiter\" />\r\n"); })); }
/// <summary> /// Create <see cref="QuizBlock"/> with <see cref="QuizBlockData"/> /// </summary> /// <param name="data">Data to add</param> public QuizBlock(QuizBlockData data) : this() => Data = data;
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"); } } })); }
public static System.Web.WebPages.HelperResult QuizBlock(IsTrueBlock block, BlockRenderContext context) { return(new System.Web.WebPages.HelperResult(__razor_helper_writer => { var tchecked = ""; var fchecked = ""; var trueItemClass = ""; var falseItemClass = ""; var ttitle = ""; var ftitle = ""; QuizBlockData model = context.GetBlockData(block) ?? new QuizBlockData(new QuizModel(), 1, QuizState.NotPassed); if (model.QuizState != QuizState.NotPassed && model.QuizModel.AnswersToQuizes[block.Id].FirstOrDefault() != null) { var userAnswer = model.QuizModel.AnswersToQuizes[block.Id].FirstOrDefault() == "True"; tchecked = userAnswer ? "checked" : ""; fchecked = userAnswer ? "" : "checked"; if (model.QuizState == QuizState.Total) { trueItemClass = block.Answer ? "right-quiz" : userAnswer ? "wrong-quiz" : ""; falseItemClass = !block.Answer ? "right-quiz" : !userAnswer ? "wrong-quiz" : ""; } } if (model.QuizState == QuizState.Total) { ttitle = (block.Answer ? "Правильный" : "Неправильный") + " вариант"; ftitle = (!block.Answer ? "Правильный" : "Неправильный") + " вариант"; } WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\t<div class=\"radio quiz-block-mark\" id=\""); WebViewPage.WriteTo(@__razor_helper_writer, block.Id + "_quizBlock"); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\">\r\n\t\t<div class=\"quiz\">\r\n\t\t\t<label class=\""); WebViewPage.WriteTo(@__razor_helper_writer, trueItemClass); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\" title=\""); WebViewPage.WriteTo(@__razor_helper_writer, ttitle); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\" "); WebViewPage.WriteTo(@__razor_helper_writer, GetGuestOnclick(context.IsGuest)); WebViewPage.WriteLiteralTo(@__razor_helper_writer, ">\r\n\t\t\t\t<input autocomplete=\"off\" "); WebViewPage.WriteTo(@__razor_helper_writer, tchecked); WebViewPage.WriteLiteralTo(@__razor_helper_writer, " id=\'"); WebViewPage.WriteTo(@__razor_helper_writer, block.Id + "quizBlock" + "True"); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\' name=\'"); WebViewPage.WriteTo(@__razor_helper_writer, block.Id + "group"); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\' type=\"radio\" "); WebViewPage.WriteTo(@__razor_helper_writer, GetGuestDisable(context.IsGuest)); WebViewPage.WriteLiteralTo(@__razor_helper_writer, ">\r\n\t\t\t\tВерно\r\n\t\t\t</label>\r\n"); if (model.QuizState == QuizState.Total && block.Answer) { WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\t\t\t\t<i class=\"glyphicon glyphicon-ok\" style=\"color: green\" title=\""); WebViewPage.WriteTo(@__razor_helper_writer, ttitle); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\"></i>\r\n"); } WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\t\t</div>\r\n\t\t<div class=\"quiz\">\r\n\t\t\t<label class=\""); WebViewPage.WriteTo(@__razor_helper_writer, falseItemClass); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\" title=\""); WebViewPage.WriteTo(@__razor_helper_writer, ftitle); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\" "); WebViewPage.WriteTo(@__razor_helper_writer, GetGuestOnclick(context.IsGuest)); WebViewPage.WriteLiteralTo(@__razor_helper_writer, ">\r\n\t\t\t\t<input autocomplete=\"off\" "); WebViewPage.WriteTo(@__razor_helper_writer, fchecked); WebViewPage.WriteLiteralTo(@__razor_helper_writer, " id=\'"); WebViewPage.WriteTo(@__razor_helper_writer, block.Id + "quizBlock" + "False"); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\' name=\'"); WebViewPage.WriteTo(@__razor_helper_writer, block.Id + "group"); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\' type=\"radio\" "); WebViewPage.WriteTo(@__razor_helper_writer, GetGuestDisable(context.IsGuest)); WebViewPage.WriteLiteralTo(@__razor_helper_writer, ">\r\n\t\t\t\tНеверно\r\n\t\t\t</label>\r\n"); if (model.QuizState == QuizState.Total && !block.Answer) { WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\t\t\t\t<i class=\"glyphicon glyphicon-ok\" style=\"color: green\" title=\""); WebViewPage.WriteTo(@__razor_helper_writer, ftitle); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\"></i>\r\n"); } WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\t\t</div>\r\n\t</div>\r\n"); if (model.QuizState == QuizState.Total && !string.IsNullOrEmpty(block.Explanation)) { WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\t\t<div class=\"text-muted\">"); WebViewPage.WriteTo(@__razor_helper_writer, block.Explanation); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "</div>\r\n"); } })); }
public static System.Web.WebPages.HelperResult QuizBlock(ChoiceBlock block, BlockRenderContext context) { return(new System.Web.WebPages.HelperResult(__razor_helper_writer => { var items = block.ShuffledItems(); var isMultiply = block.Multiple; var typeInp = isMultiply ? "checkbox" : "radio"; QuizBlockData model = context.GetBlockData(block) ?? new QuizBlockData(new QuizModel(), 1, QuizState.NotPassed); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\t<div class=\"quiz-block-mark "); WebViewPage.WriteTo(@__razor_helper_writer, typeInp); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\" id=\'"); WebViewPage.WriteTo(@__razor_helper_writer, block.Id + "_quizBlock"); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\'>\r\n"); for (var itemIndex = 0; itemIndex < items.Length; itemIndex++) { var item = items[itemIndex]; var id = isMultiply ? itemIndex + "noMult" : model.BlockIndex.ToString(); var itemChecked = model.QuizState != QuizState.NotPassed && model.QuizModel.AnswersToQuizes[block.Id].Contains(item.Id); var ans = itemChecked ? "checked" : ""; var itemClass = ""; var title = ""; if (model.QuizState == QuizState.Total) { itemClass = item.IsCorrect ? "right-quiz" : itemChecked ? "wrong-quiz" : ""; title = (item.IsCorrect ? "Правильный" : "Неправильный") + " вариант"; } WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\t\t\t<div class=\"quiz\">\r\n\t\t\t\t<label class=\""); WebViewPage.WriteTo(@__razor_helper_writer, itemClass); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\" title=\""); WebViewPage.WriteTo(@__razor_helper_writer, title); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\" "); WebViewPage.WriteTo(@__razor_helper_writer, GetGuestOnclick(context.IsGuest)); WebViewPage.WriteLiteralTo(@__razor_helper_writer, ">\r\n\t\t\t\t\t<input "); WebViewPage.WriteTo(@__razor_helper_writer, ans); WebViewPage.WriteLiteralTo(@__razor_helper_writer, " autocomplete=\"off\" id=\'"); WebViewPage.WriteTo(@__razor_helper_writer, block.Id + "quizBlock" + item.Id); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\' name="); WebViewPage.WriteTo(@__razor_helper_writer, "group" + id); WebViewPage.WriteLiteralTo(@__razor_helper_writer, " type=\""); WebViewPage.WriteTo(@__razor_helper_writer, typeInp); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\" "); WebViewPage.WriteTo(@__razor_helper_writer, GetGuestDisable(context.IsGuest)); WebViewPage.WriteLiteralTo(@__razor_helper_writer, ">\r\n\t\t\t\t\t"); WebViewPage.WriteTo(@__razor_helper_writer, item.Description.RenderTex()); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\r\n\t\t\t\t</label>\r\n"); if (model.QuizState == QuizState.Total && item.IsCorrect) { WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\t\t\t\t\t<i class=\"glyphicon glyphicon-ok\" style=\"color: green\" title=\""); WebViewPage.WriteTo(@__razor_helper_writer, title); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\"></i>\r\n"); } if (model.QuizState == QuizState.Total && !string.IsNullOrEmpty(item.Explanation)) { WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\t\t\t\t\t<p class=\"text-muted\">"); WebViewPage.WriteTo(@__razor_helper_writer, item.Explanation); WebViewPage.WriteLiteralTo(@__razor_helper_writer, "</p>\r\n"); } WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\t\t\t</div>\r\n"); } WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\t</div>\r\n"); })); }