コード例 #1
0
        private static async Task <IEnumerable <Server> > SelectServers()
        {
            Console.WriteLine();
            Console.WriteLine("Selecting best server by distance...");
            var servers = settings.Servers.Take(10).ToList();

            foreach (var server in servers)
            {
                server.Latency = await client.TestServerLatencyAsync(server);

                PrintServerDetails(server);
            }
            return(servers);
        }
コード例 #2
0
        private async Task <Speedtest> RunSpeedtest(DateTimeOffset timestamp)
        {
            await _semaphore.WaitAsync();

            IsRunning = true;
            RunStarted?.Invoke();

            var test = new Speedtest {
                Timestamp = timestamp
            };

            try
            {
                var settings = await _client.GetSettingsAsync();

                var server = settings.Servers
                             .OrderBy(s => s.Distance)
                             .FirstOrDefault();

                test.ServerLatency = await _client.TestServerLatencyAsync(server);

                test.DownloadSpeed = await _client.TestDownloadSpeedAsync(server);

                test.UploadSpeed = await _client.TestUploadSpeedAsync(server);

                _logger.LogInformation($"Test ran successfully - Time: {timestamp}, Latency: {test.ServerLatency} ms, " +
                                       $"Download: {test.DownloadSpeed / 1000} Mbps, Upload: {test.UploadSpeed / 1000} Mbps");

                using var scope = _services.CreateScope();
                var context = scope.ServiceProvider.GetRequiredService <AppDbContext>();
                context.Speedtests.Add(test);
                await context.SaveChangesAsync();
            }
            finally
            {
                IsRunning = false;
                RunCompleted?.Invoke(test);

                _semaphore.Release();
            }

            return(test);
        }
コード例 #3
0
ファイル: App.cs プロジェクト: MAtchane/speed-tester
        private static IEnumerable <Server> SelectServers()
        {
            Debug.WriteLine("__");
            Debug.WriteLine("Selecting best server by distance...");
            List <Server> servers;

            if (clientCountry != null)
            {
                servers = settings.Servers.Where(s => s.Country.Equals(clientCountry)).Take(10).ToList();
            }
            else
            {
                servers = settings.Servers.Where(s => s.Country.Equals(DefaultCountry)).Take(10).ToList();
            }

            foreach (var server in servers)
            {
                server.Latency = client.TestServerLatencyAsync(server).GetAwaiter().GetResult();
                PrintServerDetails(server);
            }
            return(servers);
        }