using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Tango.SystemInfo { public class SystemObjectsCollection { public String Name { get; set; } public List Objects { get; set; } public SystemObjectsCollection() { Objects = new List(); } public override string ToString() { String str = String.Empty; str += Name + "\n\n"; foreach (var obj in Objects) { str += obj.ToString(); str += "\n"; } str += "\n"; return str; } public static List Create() { List list = new List(); Connection wmiConnection = new Connection(); SystemObjectsCollection os = new SystemObjectsCollection() { Name = "Operation System" }; Win32_OperatingSystem osConnection = new Win32_OperatingSystem(wmiConnection); os.Objects = osConnection.GetHardwareInfoList().ToList(); list.Add(os); SystemObjectsCollection board = new SystemObjectsCollection() { Name = "Board" }; Win32_BaseBoard boardConnection = new Win32_BaseBoard(wmiConnection); board.Objects = boardConnection.GetHardwareInfoList().ToList(); list.Add(board); SystemObjectsCollection bios = new SystemObjectsCollection() { Name = "BIOS" }; Win32_BIOS biosConnection = new Win32_BIOS(wmiConnection); bios.Objects = biosConnection.GetHardwareInfoList().ToList(); list.Add(bios); SystemObjectsCollection processor = new SystemObjectsCollection() { Name = "Processor" }; Win32_Processor processorConnection = new Win32_Processor(wmiConnection); processor.Objects = processorConnection.GetHardwareInfoList().ToList(); list.Add(processor); SystemObjectsCollection memory = new SystemObjectsCollection() { Name = "Memory" }; Win32_PhysicalMemory memoryConnection = new Win32_PhysicalMemory(wmiConnection); memory.Objects = memoryConnection.GetHardwareInfoList().ToList(); list.Add(memory); SystemObjectsCollection video = new SystemObjectsCollection() { Name = "Video Controller" }; Win32_VideoController videoConnection = new Win32_VideoController(wmiConnection); video.Objects = videoConnection.GetHardwareInfoList().ToList(); list.Add(video); SystemObjectsCollection disk = new SystemObjectsCollection() { Name = "Disk Drives" }; Win32_DiskDrive diskConnection = new Win32_DiskDrive(wmiConnection); disk.Objects = diskConnection.GetHardwareInfoList().ToList(); list.Add(disk); SystemObjectsCollection network = new SystemObjectsCollection() { Name = "Network" }; Win32_NetworkAdapter networkConnection = new Win32_NetworkAdapter(wmiConnection); network.Objects = networkConnection.GetHardwareInfoList().ToList(); list.Add(network); SystemObjectsCollection sound = new SystemObjectsCollection() { Name = "Sound" }; Win32_SoundDevice soundConnection = new Win32_SoundDevice(wmiConnection); sound.Objects = soundConnection.GetHardwareInfoList().ToList(); list.Add(sound); SystemObjectsCollection serial = new SystemObjectsCollection() { Name = "Serial Ports" }; Win32_SerialPort serialConnection = new Win32_SerialPort(wmiConnection); serial.Objects = serialConnection.GetHardwareInfoList().ToList(); list.Add(serial); SystemObjectsCollection fan = new SystemObjectsCollection() { Name = "Fan" }; Win32_Fan fanConnection = new Win32_Fan(wmiConnection); fan.Objects = fanConnection.GetHardwareInfoList().ToList(); list.Add(fan); SystemObjectsCollection temp = new SystemObjectsCollection() { Name = "Temperature" }; Win32_TemperatureProbe tempConnection = new Win32_TemperatureProbe(wmiConnection); temp.Objects = tempConnection.GetHardwareInfoList().ToList(); list.Add(temp); SystemObjectsCollection power = new SystemObjectsCollection() { Name = "Power Supply" }; Win32_UninterruptiblePowerSupply powerConnection = new Win32_UninterruptiblePowerSupply(wmiConnection); power.Objects = powerConnection.GetHardwareInfoList().ToList(); list.Add(power); SystemObjectsCollection voltage = new SystemObjectsCollection() { Name = "Voltage" }; Win32_VoltageProbe voltageConnection = new Win32_VoltageProbe(wmiConnection); voltage.Objects = voltageConnection.GetHardwareInfoList().ToList(); list.Add(voltage); return list; } } }