public static ConnectivityMode DetectConnectivityModeForAutoDetect(Uri uri) { if (NetworkDetector.tcpConnectivityStatus == 3 && NetworkDetector.httpConnectivityStatus == 3) { NetworkDetector.Reset(); } Exception[] exceptionArray = new Exception[2]; if (NetworkDetector.IsNetTcpConnectivityAvailable(uri, out exceptionArray[0])) { return(ConnectivityMode.Tcp); } if (!NetworkDetector.IsHttpConnectivityAvailable(uri, out exceptionArray[1])) { Exception[] array = ( from e in (IEnumerable <Exception>)exceptionArray where e != null select e).ToArray <Exception>(); string reach = SRClient.UnableToReach(uri.Host, 9351, 9352); if ((int)array.Length <= 0) { throw Fx.Exception.AsError(new CommunicationException(reach), null); } throw Fx.Exception.AsError(new CommunicationException(reach, new AggregateException(array)), null); } return(ConnectivityMode.Http); }