Exemple #1
0
        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()
                       ]));
        }
Exemple #2
0
        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
                                                           ))));
        }
Exemple #3
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()
                       ]));
        }
Exemple #4
0
 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)]]);
 }
Exemple #5
0
 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")]);
 }
Exemple #7
0
        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)]

                                     ])]);
        }
Exemple #8
0
        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)));
        }
Exemple #9
0
        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)]
                                          ])]));
        }
Exemple #10
0
        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
                                                        ))

                       ));
        }
Exemple #11
0
 object Modules()
 {
     return(TestControls.ModulePercentsView(Model.ModulePercents, Model.Modules));
 }
Exemple #12
0
 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;"));
 }