public void Tick(Trigger trigger) { var now = CommonTime.GetTimeOfDay(_dateTime.Now); var onOrOff = (now, trigger.TriggerType) switch { (_, TriggerType.OnButtonPressed) => true, (_, TriggerType.OffButtonPressed) => false, (CommonTimes.Morning, TriggerType.DoorOpened) => true, (CommonTimes.Evening, TriggerType.DoorOpened) => true, (CommonTimes.Evening, TriggerType.DoorClosed) => false, (CommonTimes.Night, TriggerType.MotionDetected) => true, _ => false }; _light.Set(onOrOff); }
public void Tick(Trigger trigger) { var now = CommonTime.GetTimeOfDay(DateTime.Now); var light = new Light(); if (trigger.TriggerType == TriggerType.OnButtonPressed) { light.Set(true); } if (now == CommonTimes.Morning) { if (trigger.TriggerType == TriggerType.DoorOpened) { light.Set(true); } } if (now == CommonTimes.Evening) { if (trigger.TriggerType == TriggerType.DoorOpened) { light.Set(true); } else if (trigger.TriggerType == TriggerType.DoorClosed) { light.Set(true); } } if (now == CommonTimes.Night) { if (trigger.TriggerType == TriggerType.MotionDetected) { light.Set(true); } } }