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 LogAnalyzer(IMowLogger logger, bool homeFromStart) { _logger = logger; _mowingTimePerDayList = new List <TimePerDayItem>(); _actualMowingTimePerDayList = new List <TimePerDayItem>(); _mowerAwayList = new List <TimePerDayItem>(); IsLost = false; IsMowing = false; IsHome = homeFromStart; _isAway = !homeFromStart; IsStuck = false; if (!homeFromStart) { var startTime = _logger.LogItems.First(x => x.Type == LogType.MowControllerStarted).Time; LastMowerLeftTime = new DateTime(startTime.Year, startTime.Month, startTime.Day, startTime.Hour, startTime.Minute, 0); LastActualMowingStartedTime = new DateTime(startTime.Year, startTime.Month, startTime.Day, startTime.Hour, startTime.Minute, 0); } if (_logger != null) { PerformLogAnalyzis(); } }