using System.Runtime.InteropServices; using JNPF.Common.Security; using JNPF.DependencyInjection; using JNPF.DynamicApiController; using JNPF.Systems.Entitys.Dto.Monitor; using Microsoft.AspNetCore.Mvc; namespace JNPF.Systems; /// /// 系统监控 /// 版 本:V3.2 /// 版 权:拓通智联科技有限公司(http://www.tuotong-tech.com) /// 日 期:2021-06-01. /// [ApiDescriptionSettings(Tag = "System", Name = "Monitor", Order = 215)] [Route("api/system/[controller]")] public class MonitorService : IDynamicApiController, ITransient { #region Get /// /// 系统监控. /// /// [HttpGet("")] public dynamic GetInfo() { var flag_Linux = RuntimeInformation.IsOSPlatform(OSPlatform.Linux); var flag_Windows = RuntimeInformation.IsOSPlatform(OSPlatform.Windows); MonitorOutput output = new MonitorOutput(); if (flag_Linux) { output.system = MachineHelper.GetSystemInfo_Linux(); output.cpu = MachineHelper.GetCpuInfo_Linux(); output.memory = MachineHelper.GetMemoryInfo_Linux(); output.disk = MachineHelper.GetDiskInfo_Linux(); } else if (flag_Windows) { output.system = MachineHelper.GetSystemInfo_Windows(); output.cpu = MachineHelper.GetCpuInfo_Windows(); output.memory = MachineHelper.GetMemoryInfo_Windows(); output.disk = MachineHelper.GetDiskInfo_Windows(); } output.time = DateTime.Now; return output; } #endregion }