/// <summary> /// Formats as block-formatted string of an <see cref="ITracerouteResult" />. /// </summary> /// <param name="traceRouteResult">The data to format.</param> /// <returns>The formatted string.</returns> public string Format(ITracerouteResult traceRouteResult) { if (traceRouteResult == null) { return("<null>"); } StringBuilder returnBuilder = new StringBuilder(traceRouteResult.HopCount * 128); returnBuilder.Append("Routing Hops:"); if (traceRouteResult.HopCount == 0) { returnBuilder.Append(" No hops found."); } else { uint hopCounter = 0; foreach (var item in traceRouteResult.Hops) { returnBuilder.Append("Hop #").Append(++hopCounter).Append(": ").AppendLine(SnmpAbstraction.IndentLines(this.Format(item))); } } return(returnBuilder.ToString()); }
private ActionResult <IStatusReply> DoTraceroute() { try { using (var querier = SnmpQuerierFactory.Instance.Create(this.host, this.querierOptions)) { ITracerouteResult tracerouteResult = querier.Traceroute(this.remotePeerAddress, Convert.ToUInt32(this.count), this.timeout, this.maxHops); return(new TracerouteWebResult(tracerouteResult)); } } catch (Exception ex) { return(new ErrorReply(ex)); } }
/// <summary> /// Construct from the querier interface container. /// </summary> /// <param name="tracerouteResult">The peers to construct from.</param> public TracerouteWebResult(ITracerouteResult tracerouteResult) { this.hopResultsBacking = (tracerouteResult == null) ? new List <ITracerouteWebHop>() : tracerouteResult.Hops.Select(p => new TracerouteWebHop(p) as ITracerouteWebHop).ToList(); this.FromAddress = tracerouteResult.FromAddress?.ToString(); this.ToAddress = tracerouteResult.ToAddress?.ToString(); }
/// <summary> /// Formats a generic object if it's of one of the supported types. /// </summary> /// <param name="someObject">The object to format.</param> /// <returns>The formatted text.</returns> public string Format(object someObject) { if (someObject == null) { return("<null>"); } IDeviceSystemData asDevSysData = someObject as IDeviceSystemData; if (asDevSysData != null) { return(this.Format(asDevSysData)); } IInterfaceDetails asIfDetails = someObject as IInterfaceDetails; if (asIfDetails != null) { return(this.Format(asIfDetails)); } IInterfaceDetail asIfDetail = someObject as IInterfaceDetail; if (asIfDetail != null) { return(this.Format(asIfDetail)); } IWirelessPeerInfos asWiPeerInfos = someObject as IWirelessPeerInfos; if (asWiPeerInfos != null) { return(this.Format(asWiPeerInfos)); } IWirelessPeerInfo asWiPeerInfo = someObject as IWirelessPeerInfo; if (asWiPeerInfo != null) { return(this.Format(asWiPeerInfo)); } ILinkDetails asLinkDetails = someObject as ILinkDetails; if (asLinkDetails != null) { return(this.Format(asLinkDetails)); } IBgpPeers asBgpPeers = someObject as IBgpPeers; if (asBgpPeers != null) { return(this.Format(asBgpPeers)); } IBgpPeer asBgpPeer = someObject as IBgpPeer; if (asBgpPeer != null) { return(this.Format(asBgpPeer)); } ITracerouteResult asTracerouteResult = someObject as ITracerouteResult; if (asTracerouteResult != null) { return(this.Format(asTracerouteResult)); } ITracerouteHop asTracerouteHop = someObject as ITracerouteHop; if (asTracerouteHop != null) { return(this.Format(asTracerouteHop)); } // fallback: call the object's ToString return(someObject.ToString()); }