/// <summary> /// Включить светофор на определенное время. /// </summary> /// <param name="time">Время работы светофора.</param> public void StartLighter(uint time) { if (DateTime.Now.Date < MaximumDate) { //----Включили наш светофор On(); if (!_red.IsBroken() && !_yellow.IsBroken() && !_green.IsBroken()) { _red.Working(time); _yellow.Working(time * 2); //----Он работает по некоторой логике и ломается _green.Working(time); } else { throw new Exception("Сломалась одна из лампочек, замените ее!"); } //----Выключили светофор в конце рабочего дня OffAll(); } else { throw new Exception("Светофор устарел, замените его."); } }
/// <summary> /// Проверка необходимости замены лампы. /// </summary> /// <param name="broken">Объект лампы, подозреваемой в поломке.</param> /// <param name="bulb">Объект новой лампочки.</param> private void Fix(Bulb broken, Bulb bulb) { if (broken.IsBroken()) { broken = bulb; } }