/// <summary> /// Provide the list of CPU /// </summary> /// <returns>A list of CPU</returns> public async Task <IEnumerable <Cpu> > GetCPUsUsage() { var queryString = "SELECT name, PercentProcessorTime FROM Win32_PerfFormattedData_PerfOS_Processor WHERE NOT name = '_Total'"; var wmiReader = new WmiReader(); var results = await wmiReader.Execute(queryString); return(results.Select(mo => new wttop.Core.Cpu() { Name = mo["name"].ToString(), PercentageUsage = int.Parse(mo["PercentProcessorTime"].ToString()) })); }
/// <summary> /// Get the disk storage information /// </summary> /// <returns>A list of storage information</returns> public async Task <IEnumerable <Storage> > GetDiskStorageInfo() { var queryString = "SELECT VolumeName, Caption, FreeSpace, Size FROM Win32_logicaldisk"; var wmiReader = new WmiReader(); var results = await wmiReader.Execute(queryString); return(results.Select(mo => new Storage() { VolumeCaption = mo["Caption"].ToString(), VolumeName = mo["VolumeName"].ToString(), AvailableKb = Convert.ToInt64(mo["FreeSpace"]), TotalKb = Convert.ToInt64(mo["Size"]) })); }
/// <summary> /// Get the disk activity /// </summary> /// <returns>Disk information</returns> public async Task <Disk> GetDiskActivity() { var queryString = "SELECT DiskReadBytesPersec, DiskWriteBytesPersec, Name FROM Win32_PerfRawData_PerfDisk_PhysicalDisk WHERE NOT name = '_Total'"; var wmiReader = new WmiReader(); var results = await wmiReader.Execute(queryString); return(new Disk() { Disks = results.Select(mo => new DiskDetails() { Name = mo["Name"].ToString(), BytesRead = Convert.ToInt64(mo["DiskReadBytesPersec"]), BytesWriten = Convert.ToInt64(mo["DiskWriteBytesPersec"]) }) .ToList() }); }
///// <summary> /// Get the network statistics /// </summary> /// <returns>Network information</returns> public async Task <Network> GetNetworkStatistics() { var queryString = "SELECT BytesReceivedPersec, BytesSentPersec, Name FROM Win32_PerfRawData_Tcpip_NetworkInterface"; var wmiReader = new WmiReader(); var results = await wmiReader.Execute(queryString); return(new Network() { Interfaces = results.Select(mo => new InterfaceDetails() { Name = mo["Name"].ToString(), BytesReceived = Convert.ToInt64(mo["BytesReceivedPersec"]), BytesSent = Convert.ToInt64(mo["BytesSentPersec"]) }) .ToList() }); }