private async Task RefreshServerList(CancellationToken cancel)
        {
            AllServers.Clear();
            Status = RefreshListStatus.Updating;

            try
            {
                using var response =
                          await _http.GetAsync(ConfigConstants.HubUrl + "api/servers", cancel);

                response.EnsureSuccessStatusCode();

                var respStr = await response.Content.ReadAsStringAsync(cancel);

                var entries = JsonConvert.DeserializeObject <List <ServerListEntry> >(respStr);

                Status = RefreshListStatus.Updated;

                AllServers.AddRange(entries.Select(e =>
                                                   new ServerEntryViewModel(_windowVm, e.Address)
                {
                    FallbackName = e.Name
                }));
            }
            catch (TaskCanceledException)
            {
                Status = RefreshListStatus.NotUpdated;
            }
            catch (Exception e)
            {
                Log.Error(e, "Failed to fetch server list due to exception.");
                Status = RefreshListStatus.Error;
            }
        }
        private async Task RefreshServerList()
        {
            AllServers.Clear();
            Status = RefreshListStatus.Updating;

            try
            {
                var response = await Global.GlobalHttpClient.GetStringAsync(HubUrl + "api/servers");

                var entries = JsonConvert.DeserializeObject <List <ServerListEntry> >(response);

                Status = RefreshListStatus.Updated;

                AllServers.AddRange(entries.Select(e =>
                                                   new ServerEntryViewModel(_statusCache, _cfg, _updater, e.Address)
                {
                    FallbackName = e.Name
                }));
            }
            catch (Exception e)
            {
                Console.WriteLine("Failed to fetch server list due to exception:\n{0}", e);
                Status = RefreshListStatus.Error;
            }
        }
Beispiel #3
0
        private async Task RefreshServerList(CancellationToken cancel)
        {
            AllServers.Clear();
            Status = RefreshListStatus.Updating;

            try
            {
                using var response =
                          await Global.GlobalHttpClient.GetAsync(ConfigConstants.HubUrl + "api/servers", cancel);

                response.EnsureSuccessStatusCode();

                // TODO: .NET 5 has an overload of ReadAsStringAsync with cancellation support.
                var respStr = await response.Content.ReadAsStringAsync();

                cancel.ThrowIfCancellationRequested();

                var entries = JsonConvert.DeserializeObject <List <ServerListEntry> >(respStr);

                Status = RefreshListStatus.Updated;

                AllServers.AddRange(entries.Select(e =>
                                                   new ServerEntryViewModel(_statusCache, _cfg, _updater, _loginMgr, e.Address)
                {
                    FallbackName = e.Name
                }));
            }
            catch (TaskCanceledException)
            {
                Status = RefreshListStatus.NotUpdated;
            }
            catch (Exception e)
            {
                Log.Error(e, "Failed to fetch server list due to exception.");
                Status = RefreshListStatus.Error;
            }
        }