public Service(string displayName, Server parentServer, ISensor sensor) { ParentServer = parentServer; DisplayName = displayName; this.sensor = sensor; LastCheckDurations = new Queue<TimeSpan>(10); }
public Service(string serviceRecordName, Server parentServer) { var record = ServiceFileRecordRegistry.GetServiceFileRecord(serviceRecordName); ParentServer = parentServer; DisplayName = record.DisplayName; sensor = SensorFactory.BuildSensor(record); LastCheckDurations = new Queue<TimeSpan>(10); }
static void RedrawServer(Server server) { var j = 0; var offset = offsets[server.HostnameOrIpAddress]; Func<int, int> rowIndex = ((p) => { var r = offset + j; j += p; return r; }); rowIndex(1); foreach (var service in server.Services) { var nameText = string.Format("{0}:", service.DisplayName); var statusText = string.Format("{0,20}", service.LastState); var timingText = string.Format("{0,8:###.00}ms {1,8:###.00}ms +- {2,6:###.00}ms", service.LastCheckDuration.TotalMilliseconds, service.LastCheckDurationMean, service.LastCheckDurationStdDev); short statusFlags = 0; switch (service.LastState) { case ServiceState.Unknown: statusFlags = 13; break; case ServiceState.Reachable: statusFlags = 10; break; case ServiceState.Unreachable: statusFlags = 12; break; default: statusFlags = 15; break; } lock (buffer) { buffer.clearRow(rowIndex(0)); buffer.Draw(nameText, 0, rowIndex(0), 15); buffer.Draw(statusText, 20, rowIndex(0), statusFlags); buffer.Draw(timingText, 50, rowIndex(0), 15); } rowIndex(1); } }