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);
            }
        }
Exemplo n.º 2
0
        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);
        }