private void CheckConnection_Thread() { try { while (true) { try { bool connected = false; bool changed = false; if (!string.IsNullOrEmpty(_masterRepoUri)) { connected = CheckConnectionAvailableBySql(_masterRepoUri); DataBaseConnectionStatus master = DataBaseConnectionsManager.Current.MasterStatus; DataBaseConnectionsManager.Current.MasterStatus = connected ? DataBaseConnectionStatus.Connected : DataBaseConnectionStatus.Disconnect; if (master != DataBaseConnectionsManager.Current.MasterStatus) { changed = true; } } if (!string.IsNullOrEmpty(_standbyRepoUri)) { connected = CheckConnectionAvailableBySql(_standbyRepoUri); DataBaseConnectionStatus standby = DataBaseConnectionsManager.Current.StandbyStatus; DataBaseConnectionsManager.Current.StandbyStatus = connected ? DataBaseConnectionStatus.Connected : DataBaseConnectionStatus.Disconnect; if (standby != DataBaseConnectionsManager.Current.StandbyStatus) { changed = true; } } if (changed && DataBaseStatusChangedEvent != null) { this.DataBaseStatusChangedEvent(this, EventArgs.Empty); } if (!string.IsNullOrEmpty(UserSetting.Current.ParkingImageConnStr)) { string imageDBstr = UserSetting.Current.ParkingImageConnStr; connected = CheckConnectionAvailableBySql(imageDBstr); DataBaseConnectionsManager.Current.ImageDBStatus = connected ? DataBaseConnectionStatus.Connected : DataBaseConnectionStatus.Disconnect; } } catch (Exception ex) { } Thread.Sleep(SyncInterval * 1000); } } catch (ThreadAbortException ex) { Ralid.GeneralLibrary.ExceptionHandling.ExceptionPolicy.HandleException(ex); } }
public static DataBaseConnectionStatus ConnectionStatus() { var result = new DataBaseConnectionStatus(); try { using (var contextMainDB = GetDbBaseContext()) { result.IsMainDBConnect = contextMainDB.Database.Exists(); } result.IsLogDBConnect = true; } catch (Exception e) { result.MainDBConnectionException = e; } return(result); }