private async Task ExecuteTransition(DateTime currentTime, DateTime?lastRunTime) { var transitionDuration = scheduleProvider.GetTransitionDuration(currentTime, lastRunTime); var reset = scheduleProvider.IsReset(currentTime, lastRunTime); var targetLightState = scheduleProvider.TargetLightState(currentTime); var command = CreateAutoCommand(targetLightState, transitionDuration, reset); await lightManager.Transition(targetLightState, command, currentTime, reset); }