Beispiel #1
0
        private void FinishExam()
        {
            if (_examPart != ExamStage.Exam)
            {
                throw new Exception("Завершение экзамена без самого экзамена");
            }

            _isExam   = false;
            _examPart = ExamStage.Afterhours;

            OnExamEnd?.Invoke();
        }
Beispiel #2
0
        public void StartExam()
        {
            if (_examPart != ExamStage.Prepare)
            {
                throw new Exception("Запуск экзамена без этапа подготовки");
            }

            _isExam   = true;
            _examPart = ExamStage.Exam;

            _examTimer.OnTimeDone += FinishExam;
            _examTimer.Start();

            OnExamStart?.Invoke();
        }
Beispiel #3
0
        public void SetExam(int examDuration, int cheatCount, int distractionCount)
        {
            if (_examPart != ExamStage.Afterhours)
            {
                throw new Exception("Предыдущий экзамен еще не закончился");
            }

            _examTimer = new Timer(examDuration);
            _isExam    = false;
            _examPart  = ExamStage.Prepare;

            var scheduler = new ExamEventScheduler(_examTimer);

            if (cheatCount > 0)
            {
                scheduler.SetRandomSchedule(cheatCount, ExamEventExecuter.Cheat);
            }

            if (distractionCount > 0)
            {
                scheduler.SetRandomSchedule(distractionCount, ExamEventExecuter.Distraction);
            }
        }
Beispiel #4
0
 public void SetupSchool()
 {
     _examPart = ExamStage.Afterhours;
 }