private void FinishExam() { if (_examPart != ExamStage.Exam) { throw new Exception("Завершение экзамена без самого экзамена"); } _isExam = false; _examPart = ExamStage.Afterhours; OnExamEnd?.Invoke(); }
public void StartExam() { if (_examPart != ExamStage.Prepare) { throw new Exception("Запуск экзамена без этапа подготовки"); } _isExam = true; _examPart = ExamStage.Exam; _examTimer.OnTimeDone += FinishExam; _examTimer.Start(); OnExamStart?.Invoke(); }
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); } }
public void SetupSchool() { _examPart = ExamStage.Afterhours; }