Example #1
0
        public static Dictionary <int, int> GetModulePercents(TestPassRule testPassRule)
        {
            if (testPassRule.ModulePercents.IsEmpty())
            {
                return(new Dictionary <int, int>());
            }
            var percents = JsonConvert.DeserializeObject <Dictionary <int, int> >(testPassRule.ModulePercents);

            return(percents);
        }
Example #2
0
        public void Validate(TestPassRule rule)
        {
            var totalPercents = EntityUtils.GetModulePercents(rule).Sum(x => x.Value);

            ErrorIfFalse(totalPercents == 100 || totalPercents == 0, "Сумма процентов модулей должна быть 100");
            ErrorIfFalse(rule.QuestionCount > 0, "Количество вопросов должно быть больше 0");
            ErrorIfFalse(rule.Time > 0, "Время должно быть больше 0");
            ErrorIfFalse((!rule.AverageMark.HasValue && !rule.ExpertMark.HasValue) ||
                         (rule.PassMark < rule.AverageMark && rule.AverageMark < rule.ExpertMark)
                         , "Проходные баллы должны идти по возрастанию");
        }
Example #3
0
        private void SetAndCheckTime(TestPassRule testPassRule, UserTest userTest)
        {
            var time = GetRestSeconds(userTest);
            var ruleTimeInSeconds = testPassRule.Time * 60;
            var resultTime        = ruleTimeInSeconds - time;

            if (resultTime > 30000)
            {
                resultTime = 30000;
            }
            if (resultTime > ruleTimeInSeconds + 5 * 60)
            {
                userTest.Status = UserTestStatus.Fail;
            }
            userTest.Time = (short)resultTime;
        }
Example #4
0
        private UserTest SaveUserTest(int id, Test test, TestPassRule testPassRule,
                                      string courseTC, int?moduleSetId, bool showAnswers)
        {
            var userTest =
                new UserTest {
                RunDate         = DateTime.Now,
                Status          = UserTestStatus.Fail,
                TestId          = id,
                TestPassRuleId  = testPassRule.Id,
                Course_TC       = courseTC,
                TestModuleSetId = moduleSetId,
                ShowAnswers     = showAnswers
            };

            userTest.UserId = GetUserId(userTest.IsPrerequisite);
            UserTestService.EnableTracking();
            UserTestService.InsertAndSubmit(userTest);
            userTest.TestPassRule = testPassRule;

            GetCurrentTests().Add(userTest);
            return(userTest);
        }
Example #5
0
 public static void SetModulePercents(TestPassRule testPassRule, Dictionary <int, int> percents)
 {
     percents = percents ?? new Dictionary <int, int>();
     testPassRule.ModulePercents = JsonConvert.SerializeObject(percents);
 }