diff --git a/Ntp.Analyzer/Page/DefaultPeerPageBuilder.cs b/Ntp.Analyzer/Page/DefaultPeerPageBuilder.cs index 18f43f2e..b0d3ffcb 100644 --- a/Ntp.Analyzer/Page/DefaultPeerPageBuilder.cs +++ b/Ntp.Analyzer/Page/DefaultPeerPageBuilder.cs @@ -54,7 +54,7 @@ namespace Ntp.Analyzer.Page { // Create page DefaultPeerPageRender peerPage = new DefaultPeerPageRender(config.WebPath, peer.Name); - peerPage.Add(new DefaultPeerInfoRender(config.WebPath, peer.Server)); + peerPage.Add(new DefaultPeerInfoRender(config.WebPath, peer.Server, peer.Name)); peerPage.Add(new DefaultPeerGraphRender(config.WebPath, peer.Server, config.Graphs)); // Generate HTML diff --git a/Ntp.Analyzer/Render/Peer/DefaultPeerInfoRender.cs b/Ntp.Analyzer/Render/Peer/DefaultPeerInfoRender.cs index 740bf3e1..6d9d70f9 100644 --- a/Ntp.Analyzer/Render/Peer/DefaultPeerInfoRender.cs +++ b/Ntp.Analyzer/Render/Peer/DefaultPeerInfoRender.cs @@ -35,20 +35,24 @@ namespace Ntp.Analyzer.Render.Peer { private readonly TimeServer server; - public DefaultPeerInfoRender(string webPath, TimeServer server) + public DefaultPeerInfoRender(string webPath, TimeServer server, string name) : base(webPath) { this.server = server; + this.name = name; } + private const string na = "N/A"; + private readonly string name; + public override string RenderHead() { StringBuilder builder = new StringBuilder(); builder.Append("

"); - builder.Append(server.Name); + builder.Append(server != null ? server.Name : name); builder.Append("

    

Stratum "); - builder.Append(GetStratumText()); + builder.Append(server != null ? GetStratumText() : na); builder.AppendLine(" server

"); return builder.ToString(); @@ -64,50 +68,54 @@ namespace Ntp.Analyzer.Render.Peer builder.AppendLine(""); builder.Append(@" Server location"); - builder.Append(server.Location); + builder.Append(server != null ? server.Location : na); builder.AppendLine(""); builder.AppendLine(""); builder.AppendLine(""); builder.Append(@" Synchronization"); - builder.Append(server.Server); + builder.Append(server != null ? server.Server : na); builder.AppendLine(""); builder.AppendLine(""); builder.AppendLine(""); builder.Append(" IP address"); - builder.Append(server.Address); + builder.Append(server != null ? server.Address.ToString() : na); builder.AppendLine(""); builder.Append(" Access policy"); - builder.Append(GetServerAccess()); + builder.Append(server != null ? GetServerAccess() : na); builder.AppendLine(""); builder.AppendLine(""); builder.AppendLine(""); builder.Append(" IPv6 address"); - builder.Append(server.V6Address ?? "N/A"); + builder.Append(server != null ? server.V6Address ?? "N/A" : na); builder.AppendLine(""); builder.Append(" Service area"); - builder.Append(GetServiceArea()); + builder.Append(server != null ? GetServiceArea() : na); builder.AppendLine(""); builder.AppendLine(""); builder.AppendLine(""); builder.Append(@" Pool member info"); - builder.Append(GetPoolMemberLink()); + builder.Append(server != null ? GetPoolMemberLink() : na); builder.AppendLine(""); builder.Append(" Provider page"); - builder.Append(GetProviderLink()); + builder.Append(server != null ? GetProviderLink() : na); builder.AppendLine(""); builder.AppendLine(""); builder.AppendLine(""); builder.Append("Description updated"); - builder.Append(server.Updated.ToLongDateString()); + builder.Append(server != null ? server.Updated.ToLongDateString() : na); builder.AppendLine(""); - builder.Append(@" Additional infosupport.ntp.org"); + if (server != null) { + builder.Append (@" Additional infosupport.ntp.org"); + } else { + builder.Append (@" Additional info" + na + ""); + } builder.AppendLine(""); builder.AppendLine("");