Example #1
0
        public MowController(
            IMowControlConfig config,
            IPowerSwitch powerSwitch,
            IWeatherForecast weatherForecast,
            ISystemTime systemTime,
            IHomeSensor homeSensor,
            IMowLogger logger,
            IRainSensor rainSensor,
            bool?mowerIsHome = null)
        {
            Config          = config;
            PowerSwitch     = powerSwitch;
            WeatherForecast = weatherForecast;
            SystemTime      = systemTime;
            HomeSensor      = homeSensor;
            Logger          = logger;
            RainSensor      = rainSensor;

            if (mowerIsHome.HasValue)
            {
                _mowerIsHome = mowerIsHome.Value;
            }
            else
            {
                _mowerIsHome = HomeSensor.IsHome;
            }
        }
        public TimeBasedHomeSensor(DateTime startTime, IMowControlConfig config, IPowerSwitchConsumer powerSwitch, ISystemTime systemTime)
        {
            _isHome      = false;
            _startTime   = startTime;
            _config      = config;
            _systemTime  = systemTime;
            _powerSwitch = powerSwitch;
            _wasHomeDuringLastInterval = true;
            _firstCheck = true;

            MowerCameTime = DateTime.MinValue;
            MowerLeftTime = DateTime.MinValue;
        }