private ConditionState Check() { if (_startValueProvider == null || _endValueProvider == null) { return ConditionState.NotFulfilled; } TimeSpan startValue = _startValueProvider(); TimeSpan endValue = _endValueProvider(); if (_startAdjustment.HasValue) { startValue += _startAdjustment.Value; } if (_endAdjustment.HasValue) { endValue += _endAdjustment.Value; } var timeRangeChecker = new TimeRangeChecker(); if (timeRangeChecker.IsTimeInRange(_timer.CurrentTime, startValue, endValue)) { return ConditionState.Fulfilled; } return ConditionState.NotFulfilled; }
private ConditionState Check() { if (_startValueProvider == null || _endValueProvider == null) { return(ConditionState.NotFulfilled); } TimeSpan startValue = _startValueProvider(); TimeSpan endValue = _endValueProvider(); if (StartAdjustment.HasValue) { startValue += StartAdjustment.Value; } if (EndAdjustment.HasValue) { endValue += EndAdjustment.Value; } var timeRangeChecker = new TimeRangeChecker(); if (timeRangeChecker.IsTimeInRange(_timer.CurrentTime, startValue, endValue)) { return(ConditionState.Fulfilled); } return(ConditionState.NotFulfilled); }
private void Check() { if (!IsEnabled) { return; } if (_maxOutsideTemperature.HasValue && !_maxOutsideTemperatureApplied) { if (_weatherStation.Temperature.Value > _maxOutsideTemperature.Value) { _maxOutsideTemperatureApplied = true; StartMoveDown(); return; } } Daylight daylightNow = _weatherStation.Daylight; bool daylightInformationIsAvailable = daylightNow.Sunrise != TimeSpan.Zero && daylightNow.Sunset != TimeSpan.Zero; if (!daylightInformationIsAvailable) { return; } daylightNow = daylightNow.Move(SunriseDiff, SunsetDiff); var timeRangeChecker = new TimeRangeChecker(); if (timeRangeChecker.IsTimeInRange(_timer.CurrentTime, daylightNow.Sunrise, daylightNow.Sunset)) { TimeSpan time = DateTime.Now.TimeOfDay; if (DoNotOpenBefore.HasValue && DoNotOpenBefore.Value > time) { return; } if (!_sunriseApplied) { _sunriseApplied = true; _sunsetApplied = false; _maxOutsideTemperatureApplied = false; StartMoveUp(); } } else { if (!_sunsetApplied) { _sunriseApplied = false; _sunsetApplied = true; StartMoveDown(); } } }