private static IEnumerable <Server> SelectServers() { Console.WriteLine(); Console.WriteLine("Selecting best server by distance..."); var servers = settings.Servers.Take(5).ToList(); foreach (var server in servers) { try { server.Latency = client.TestServerLatency(server); } catch (Exception) { server.Latency = Int32.MaxValue; } PrintServerDetails(server); } return(servers); }
private Server FindBestTestServer() { var tenLocalServers = _settings.Servers .Where(s => s.Country.Equals(_location.EnglishName)) .Take(10); var serversOrdersByLatency = tenLocalServers .Select(s => { try { s.Latency = _client.TestServerLatency(s); } catch (System.Exception) { s.Latency = int.MaxValue; } return(s); }) .OrderBy(s => s.Latency); return(serversOrdersByLatency.First()); }
static void Main(string[] args) { Console.WriteLine("Getting speedtest.net settings and server list..."); client = new SpeedTestClient(); settings = client.GetSettings(); var servers = SelectServers(); var bestServer = SelectBestServer(servers); Console.WriteLine("Testing speed...\n"); var downloadSpeed = client.TestDownloadSpeed(bestServer, settings.Download.ThreadsPerUrl); PrintSpeed("Download", downloadSpeed); var uploadSpeed = client.TestUploadSpeed(bestServer, settings.Upload.ThreadsPerUrl); PrintSpeed("Upload", uploadSpeed); var ping = client.TestServerLatency(bestServer); Console.WriteLine($"Best server ping: {ping}\n"); Console.WriteLine("Press a key to exit."); Console.ReadLine(); }