private void AdjustFan(Enum.TempertureMeasure measure) { var temperture = GetTemperture(measure); if (temperture == null) { SetAutoFan(); } var level = _fanLevels.Levels.Where(o => o.Low <= temperture.Temp && temperture.Temp <= o.High).FirstOrDefault(); if (level == null) { SetAutoFan(); } else { if (!_fanManual) { _iMPIInteraction.SetMannualFanControl(); } if (CanAdjustFanSpeed(_currentFanSpeed, level.Speed, _fanLevels.MinimumTimeBeforeDropping)) { AdjustFan(level.Speed); } } }
private Models.Temperture GetTemperture(Enum.TempertureMeasure measure) { var tempertures = _iMPIInteraction.GetTemperture(); switch (measure) { case Enum.TempertureMeasure.Highest: return(tempertures.OrderByDescending(s => s.Temp).FirstOrDefault()); case Enum.TempertureMeasure.Average: var averageTemp = (int)tempertures.Average(s => s.Temp); return(new Models.Temperture(averageTemp)); default: return(new Models.Temperture(500)); } }