@@ -344,22 +344,7 @@ private void SetupAutoRefresh()
344344 } ;
345345 _autoRefreshTimer . Tick += async ( s , e ) =>
346346 {
347- if ( _isRefreshing ) return ;
348- _isRefreshing = true ;
349-
350- try
351- {
352- await LoadDataAsync ( fullRefresh : false ) ;
353- }
354- catch ( Exception ex )
355- {
356- Logger . Error ( $ "Error in auto-refresh: { ex . Message } ", ex ) ;
357- StatusText . Text = "Auto-refresh error" ;
358- }
359- finally
360- {
361- _isRefreshing = false ;
362- }
347+ await LoadDataAsync ( fullRefresh : false ) ;
363348 } ;
364349 _autoRefreshTimer . Start ( ) ;
365350 AutoRefreshToggle . IsChecked = true ;
@@ -415,22 +400,7 @@ public void RefreshAutoRefreshSettings()
415400 } ;
416401 _autoRefreshTimer . Tick += async ( s , e ) =>
417402 {
418- if ( _isRefreshing ) return ;
419- _isRefreshing = true ;
420-
421- try
422- {
423- await LoadDataAsync ( fullRefresh : false ) ;
424- }
425- catch ( Exception ex )
426- {
427- Logger . Error ( $ "Error in auto-refresh: { ex . Message } ", ex ) ;
428- StatusText . Text = "Auto-refresh error" ;
429- }
430- finally
431- {
432- _isRefreshing = false ;
433- }
403+ await LoadDataAsync ( fullRefresh : false ) ;
434404 } ;
435405 _autoRefreshTimer . Start ( ) ;
436406 AutoRefreshToggle . IsChecked = true ;
@@ -464,22 +434,7 @@ private void AutoRefreshToggle_Click(object sender, RoutedEventArgs e)
464434 } ;
465435 _autoRefreshTimer . Tick += async ( s , args ) =>
466436 {
467- if ( _isRefreshing ) return ;
468- _isRefreshing = true ;
469-
470- try
471- {
472- await LoadDataAsync ( fullRefresh : false ) ;
473- }
474- catch ( Exception ex )
475- {
476- Logger . Error ( $ "Error in auto-refresh: { ex . Message } ", ex ) ;
477- StatusText . Text = "Auto-refresh error" ;
478- }
479- finally
480- {
481- _isRefreshing = false ;
482- }
437+ await LoadDataAsync ( fullRefresh : false ) ;
483438 } ;
484439 _autoRefreshTimer . Start ( ) ;
485440 AutoRefreshToggle . Content = $ "Auto-Refresh: { prefs . AutoRefreshIntervalSeconds } s";
@@ -1129,6 +1084,9 @@ private async Task ApplyAndRefreshCurrentTabAsync()
11291084 /// </summary>
11301085 private async Task LoadDataAsync ( bool fullRefresh = true )
11311086 {
1087+ if ( _isRefreshing ) return ;
1088+ _isRefreshing = true ;
1089+
11321090 using var _ = Helpers . MethodProfiler . StartTiming ( "ServerTab" ) ;
11331091 try
11341092 {
@@ -1139,12 +1097,19 @@ private async Task LoadDataAsync(bool fullRefresh = true)
11391097 if ( ! connected )
11401098 {
11411099 StatusText . Text = $ "Failed to connect to { _serverConnection . DisplayName } ";
1142- MessageBox . Show (
1143- $ "Could not connect to SQL Server: { _serverConnection . ServerName } \n \n Check connection settings",
1144- "Connection Error" ,
1145- MessageBoxButton . OK ,
1146- MessageBoxImage . Error
1147- ) ;
1100+ if ( fullRefresh )
1101+ {
1102+ MessageBox . Show (
1103+ $ "Could not connect to SQL Server: { _serverConnection . ServerName } \n \n Check connection settings",
1104+ "Connection Error" ,
1105+ MessageBoxButton . OK ,
1106+ MessageBoxImage . Error
1107+ ) ;
1108+ }
1109+ else
1110+ {
1111+ Logger . Error ( $ "Auto-refresh connection failed for { _serverConnection . DisplayName } ") ;
1112+ }
11481113 return ;
11491114 }
11501115
@@ -1167,16 +1132,24 @@ private async Task LoadDataAsync(bool fullRefresh = true)
11671132 catch ( Exception ex )
11681133 {
11691134 StatusText . Text = "Error loading data" ;
1170- MessageBox . Show (
1171- $ "Error loading data:\n \n { ex . Message } ",
1172- "Error" ,
1173- MessageBoxButton . OK ,
1174- MessageBoxImage . Error
1175- ) ;
1135+ if ( fullRefresh )
1136+ {
1137+ MessageBox . Show (
1138+ $ "Error loading data:\n \n { ex . Message } ",
1139+ "Error" ,
1140+ MessageBoxButton . OK ,
1141+ MessageBoxImage . Error
1142+ ) ;
1143+ }
1144+ else
1145+ {
1146+ Logger . Error ( $ "Auto-refresh error for { _serverConnection . DisplayName } : { ex . Message } ", ex ) ;
1147+ }
11761148 }
11771149 finally
11781150 {
11791151 RefreshButton . IsEnabled = true ;
1152+ _isRefreshing = false ;
11801153 }
11811154 }
11821155
0 commit comments