Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
93 changes: 33 additions & 60 deletions Dashboard/ServerTab.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -344,22 +344,7 @@ private void SetupAutoRefresh()
};
_autoRefreshTimer.Tick += async (s, e) =>
{
if (_isRefreshing) return;
_isRefreshing = true;

try
{
await LoadDataAsync(fullRefresh: false);
}
catch (Exception ex)
{
Logger.Error($"Error in auto-refresh: {ex.Message}", ex);
StatusText.Text = "Auto-refresh error";
}
finally
{
_isRefreshing = false;
}
await LoadDataAsync(fullRefresh: false);
};
_autoRefreshTimer.Start();
AutoRefreshToggle.IsChecked = true;
Expand Down Expand Up @@ -415,22 +400,7 @@ public void RefreshAutoRefreshSettings()
};
_autoRefreshTimer.Tick += async (s, e) =>
{
if (_isRefreshing) return;
_isRefreshing = true;

try
{
await LoadDataAsync(fullRefresh: false);
}
catch (Exception ex)
{
Logger.Error($"Error in auto-refresh: {ex.Message}", ex);
StatusText.Text = "Auto-refresh error";
}
finally
{
_isRefreshing = false;
}
await LoadDataAsync(fullRefresh: false);
};
_autoRefreshTimer.Start();
AutoRefreshToggle.IsChecked = true;
Expand Down Expand Up @@ -464,22 +434,7 @@ private void AutoRefreshToggle_Click(object sender, RoutedEventArgs e)
};
_autoRefreshTimer.Tick += async (s, args) =>
{
if (_isRefreshing) return;
_isRefreshing = true;

try
{
await LoadDataAsync(fullRefresh: false);
}
catch (Exception ex)
{
Logger.Error($"Error in auto-refresh: {ex.Message}", ex);
StatusText.Text = "Auto-refresh error";
}
finally
{
_isRefreshing = false;
}
await LoadDataAsync(fullRefresh: false);
};
_autoRefreshTimer.Start();
AutoRefreshToggle.Content = $"Auto-Refresh: {prefs.AutoRefreshIntervalSeconds}s";
Expand Down Expand Up @@ -1129,6 +1084,9 @@ private async Task ApplyAndRefreshCurrentTabAsync()
/// </summary>
private async Task LoadDataAsync(bool fullRefresh = true)
{
if (_isRefreshing) return;
_isRefreshing = true;

using var _ = Helpers.MethodProfiler.StartTiming("ServerTab");
try
{
Expand All @@ -1139,12 +1097,19 @@ private async Task LoadDataAsync(bool fullRefresh = true)
if (!connected)
{
StatusText.Text = $"Failed to connect to {_serverConnection.DisplayName}";
MessageBox.Show(
$"Could not connect to SQL Server: {_serverConnection.ServerName}\n\nCheck connection settings",
"Connection Error",
MessageBoxButton.OK,
MessageBoxImage.Error
);
if (fullRefresh)
{
MessageBox.Show(
$"Could not connect to SQL Server: {_serverConnection.ServerName}\n\nCheck connection settings",
"Connection Error",
MessageBoxButton.OK,
MessageBoxImage.Error
);
}
else
{
Logger.Error($"Auto-refresh connection failed for {_serverConnection.DisplayName}");
}
return;
}

Expand All @@ -1167,16 +1132,24 @@ private async Task LoadDataAsync(bool fullRefresh = true)
catch (Exception ex)
{
StatusText.Text = "Error loading data";
MessageBox.Show(
$"Error loading data:\n\n{ex.Message}",
"Error",
MessageBoxButton.OK,
MessageBoxImage.Error
);
if (fullRefresh)
{
MessageBox.Show(
$"Error loading data:\n\n{ex.Message}",
"Error",
MessageBoxButton.OK,
MessageBoxImage.Error
);
}
else
{
Logger.Error($"Auto-refresh error for {_serverConnection.DisplayName}: {ex.Message}", ex);
}
}
finally
{
RefreshButton.IsEnabled = true;
_isRefreshing = false;
}
}

Expand Down
Loading