Exemple #1
0
        /// <summary>填充在线节点信息</summary>
        /// <param name="inf"></param>
        private void Fill(PingInfo inf)
        {
            var olt = this;

            if (inf.AvailableMemory > 0)
            {
                olt.AvailableMemory = (Int32)(inf.AvailableMemory / 1024 / 1024);
            }
            if (inf.AvailableFreeSpace > 0)
            {
                olt.AvailableFreeSpace = (Int32)(inf.AvailableFreeSpace / 1024 / 1024);
            }
            if (inf.CpuRate > 0)
            {
                olt.CpuRate = inf.CpuRate;
            }
            if (inf.Temperature > 0)
            {
                olt.Temperature = inf.Temperature;
            }
            if (inf.ProcessCount > 0)
            {
                olt.ProcessCount = inf.ProcessCount;
            }
            if (inf.TcpConnections > 0)
            {
                olt.TcpConnections = inf.TcpConnections;
            }
            if (inf.TcpTimeWait > 0)
            {
                olt.TcpTimeWait = inf.TcpTimeWait;
            }
            if (inf.TcpCloseWait > 0)
            {
                olt.TcpCloseWait = inf.TcpCloseWait;
            }
            if (inf.Uptime > 0)
            {
                olt.Uptime = inf.Uptime;
            }
            if (inf.Delay > 0)
            {
                olt.Delay = inf.Delay;
            }

            var dt = inf.Time.ToDateTime().ToLocalTime();

            if (dt.Year > 2000)
            {
                olt.LocalTime = dt;
                olt.Offset    = (Int32)Math.Round((dt - DateTime.Now).TotalSeconds);
            }

            if (!inf.Processes.IsNullOrEmpty())
            {
                olt.Processes = inf.Processes;
            }
            if (!inf.Macs.IsNullOrEmpty())
            {
                olt.MACs = inf.Macs;
            }
            //if (!inf.COMs.IsNullOrEmpty()) olt.COMs = inf.COMs;

            // 插入节点数据
            var data = new NodeData
            {
                NodeID             = olt.NodeID,
                Name               = olt.Name,
                AvailableMemory    = olt.AvailableMemory,
                AvailableFreeSpace = olt.AvailableFreeSpace,
                CpuRate            = inf.CpuRate,
                Temperature        = inf.Temperature,
                ProcessCount       = inf.ProcessCount,
                TcpConnections     = inf.TcpConnections,
                TcpTimeWait        = inf.TcpTimeWait,
                TcpCloseWait       = inf.TcpCloseWait,
                Uptime             = inf.Uptime,
                Delay              = inf.Delay,
                LocalTime          = dt,
                Offset             = olt.Offset,
                Data               = inf.ToJson(),
                Creator            = Environment.MachineName,
            };

            data.SaveAsync();
        }