Split into service and UI

This commit is contained in:
2014-05-12 20:38:41 -04:00
parent 043daea51e
commit aa1d28d6a8
40 changed files with 1942 additions and 114 deletions

View File

@@ -0,0 +1,60 @@
using OpenHardwareMonitor.Hardware;
using System.Collections.Generic;
using System.Linq;
namespace SystemTemperatureService
{
public class SystemTemperatureService : ISystemTemperatureService
{
private static Computer _computer;
public List<Device> GetDeviceList()
{
if (_computer == null)
{
_computer = new Computer { HDDEnabled = true, FanControllerEnabled = false, GPUEnabled = true, MainboardEnabled = true, CPUEnabled = true };
_computer.Open();
}
var deviceList = new List<Device>();
foreach (var hardware in _computer.Hardware)
{
hardware.Update();
var averageValue = hardware.Sensors.Where(sensor => sensor.SensorType == SensorType.Temperature).Average(sensor => sensor.Value);
if (averageValue.HasValue)
{
Device device = null;
switch (hardware.HardwareType)
{
case HardwareType.CPU:
device = new Device { Type = DeviceType.Cpu };
break;
case HardwareType.GpuAti:
case HardwareType.GpuNvidia:
device = new Device { Type = DeviceType.Gpu };
break;
case HardwareType.HDD:
device = new Device { Type = DeviceType.Hdd };
break;
}
if (device != null)
{
device.Id = hardware.Identifier.ToString();
device.Temperature = averageValue.Value;
}
deviceList.Add(device);
}
}
return deviceList;
}
}
}