public override object Get() { var courseControl = Select2For(Model.CourseName, x => x.Test.CourseTCList, Url.Action <TestEditController>(c => c.GetCoursesAuto(null))); if (Model.Test.CompanyId.HasValue) { courseControl = null; } return(l( AjaxForm(Url.Action <TestEditController>(x => x.EditTest((TestEditVM)null)))[ Tabs(_.List("Тест", "Условия прохождения", "Проценты модулей"), l( HiddenFor(x => x.Test.Id), ControlFor(x => x.Test.Name), ControlFor(x => x.Test.Description), courseControl ), l( HiddenFor(x => x.Test.TestPassRule.Id), ControlFor(x => x.Test.TestPassRule.Time), ControlFor(x => x.Test.TestPassRule.QuestionCount), ControlFor(x => x.Test.TestPassRule.PassMark), ControlFor(x => x.Test.TestPassRule.AverageMark), ControlFor(x => x.Test.TestPassRule.ExpertMark) ), l( TestControls.ModulePercentsView(Model.ModulePercents, Model.Modules) ) ), SaveButton() ])); }
public override object Get() { var typeControl = H.l(LabelFor(x => x.Type), SelectFor(x => x.Type, NamedIdCache <TestQuestionType> .List, x => x.Name, x => x.Id)); if (Model.Id > 0) { typeControl = H.l(LabelFor(x => x.Type), div.Class("editor-div")[ TestQuestionType.GetName(Model.Type)], HiddenFor(x => x.Type)); } return(l( Tabs(_.List("Вопрос", "Файл"), AjaxForm(Url.Action <TestEditController>(x => x.EditQuestion(null)))[ HiddenFor(x => x.Id), HiddenFor(x => x.TestId), ControlFor(x => x.Description), typeControl, Select2For(Model.TestModule.GetOrDefault(x => x.Name), x => x.ModuleId, Url.Action <TestEditController>(c => c.GetModulesAuto(Model.TestId, null))), SaveButton() ], TestControls.TestFileUpload(TestControls.QuestionFileView(Model.Id, true), Url.Action <TestEditController>(c => c.UploadQuestionFile(Model.Id, null)), Url.Action <TestEditController>(c => c.DeleteQuestionFile(Model.Id)), Url.Action <TestEditController>(c => c.GetQuestionFileControl(Model.Id)), Model.Id == 0 )))); }
public override object Get() { var names = _.List("Тест"); if (Model.Modules.Any()) { names.Add("Проценты модулей"); } return(l( AjaxForm(Url.Action <GroupTestController>(x => x.EditGroupTest(null)))[ Tabs(names, l( AutocompleteFor(Model.GroupTest.Test.GetOrDefault(x => x.Name), x => x.GroupTest.TestId, Url.Action <GroupTestController>(c => c.GetTestsAuto(Model.GroupTest.GroupInfoId, null))), HiddenFor(x => x.GroupTest.Id), ControlFor(x => x.GroupTest.DateBegin), ControlFor(x => x.GroupTest.DateEnd), ControlFor(x => x.GroupTest.AttemptCount), HiddenFor(x => x.GroupTest.GroupInfoId), HiddenFor(x => x.GroupTest.TestPassRule.Id), ControlFor(x => x.GroupTest.TestPassRule.Time), ControlFor(x => x.GroupTest.TestPassRule.QuestionCount), ControlFor(x => x.GroupTest.TestPassRule.PassMark), ControlFor(x => x.GroupTest.TestPassRule.AverageMark), ControlFor(x => x.GroupTest.TestPassRule.ExpertMark) ), TestControls.ModulePercentsView(Model.ModulePercents, Model.Modules) ), SaveButton() ])); }
public static TagDiv QuestionView(TestQuestion x, int count, int i, bool hideCount = false) { return(div.Style("border-bottom:1px solid;").Class("test-question-id-" + x.Id)[ h3["Вопрос" + (hideCount ? "" : " {0}/{1}".FormatWith(i + 1, count))], p[TestText(x.Description)], TestControls.QuestionFileView(x.Id, false, true), div[AnswerPart(x)]]); }
public override object Get() { return(div[ TestControls.StatsLinks(Url, Model.GroupId, true), Model.ModuleSetStats.OrderBy(x => x.Set.Number).Select(x => div[p[strong[x.Set.Number + "."], " ", x.Set.Description], Users(x.UserTests)] )]); }
public override object Get() { return(div[TestControls.StatsLinks(Url, Model.GroupId, false), H.table[H.Head("Вопрос", "Правильно (%)"), Model.QuestionStats.OrderBy(x => x.Item2).Select(x => H.Row(Model.QuestionNames[x.Item1], x.Item2 ))] .Class("defaultTable")]); }
private static TagUl GetAnswerList(IEnumerable <TestAnswer> answers) { return(ul[answers.Select(x => li.Style("margin-bottom:15px;")[x.IsRight.GetValueOrDefault() ? (object)div.Style("border:2px solid Green;padding:5px;border-radius: 5px;")[ TestText(x.Description), TestControls.AnswerFileView(x.Id, false, true)] : div[TestText(x.Description), TestControls.AnswerFileView(x.Id, false, true)] ])]); }
object GetAnswerText(TestAnswer answer) { var file = TestControls.AnswerFileView(answer.Id, false); var desc = TestReadOnlyView.TestText(answer.Description); if (file == null) { return(desc); } return(H.l(desc, br, TestControls.AnswerFileView(answer.Id, false))); }
public static object ComparisonView(TestQuestion model) { var answers1 = model.TestAnswers.Where(x => x.ComparableId.HasValue); var answers2 = model.TestAnswers.Where(x => x.ComparableId == null); var compare = answers1.Select(x => Tuple.Create(x, answers2.FirstOrDefault(y => y.Id == x.ComparableId.Value))); return(l( table[ compare.Select(x => tr[ td[x.Item2.GetOrDefault(a => TestText(a.Description)), br, TestControls.AnswerFileView(x.Item2.Id, false)], td[TestText(x.Item1.Description), br, TestControls.AnswerFileView(x.Item1.Id, false)] ])])); }
public override object Get() { object answerControl = null; switch (Model.TestQuestion.Type) { case TestQuestionType.OneAnswer: case TestQuestionType.ManyAnswers: answerControl = ControlFor(x => x.IsRight); break; case TestQuestionType.Comparison: answerControl = Select2For(Model.ComparableAnswer.GetOrDefault(x => x.Description), x => x.ComparableId, Url.Action <TestEditController>(c => c.GetAnswersAuto(Model.TestQuestion.Id, null))); break; case TestQuestionType.Sort: answerControl = ControlFor(x => x.Sort); break; default: throw new Exception("TestQuestionType out of range"); } return(l( Tabs(_.List("�עגוע", "�איכ"), AjaxForm(Url.Action <TestEditController>(x => x.EditAnswer(null)))[ HiddenFor(x => x.Id), HiddenFor(x => x.QuestionId), ControlFor(x => x.Description), answerControl, SaveButton() ], TestControls.TestFileUpload(TestControls.AnswerFileView(Model.Id, true), Url.Action <TestEditController>(c => c.UploadAnswerFile(Model.Id, null)), Url.Action <TestEditController>(c => c.DeleteAnswerFile(Model.Id)), Url.Action <TestEditController>(c => c.GetAnswerFileControl(Model.Id)), Model.Id == 0 )) )); }
object Modules() { return(TestControls.ModulePercentsView(Model.ModulePercents, Model.Modules)); }
public object QuestionView(TestQuestion model, int index, int count) { return(div .Class(GetQuestionClass(model) + " test-question entity-id-" + model.Id)[ h2["Вопрос {0} из {1}".FormatWith(index + 1, count)], button.Class("mark-button")["Отметить"].Title("Отметьте вопрос, что бы потом к нему вернуться"), p[TestReadOnlyView.TestText(model.Description), div.Style("margin:5px;")[TestControls.QuestionFileView(model.Id, false)]], AnswerPart(model)].Style("display:none;")); }