Esempio n. 1
0
        private void InitializeInternal()
        {
            try
            {
                RefreshSchemas(OracleSchemaResolver.ResolveSchemas(this));
            }
            catch (Exception e)
            {
                TraceLog.WriteLine($"Database model for connection '{ConnectionString.Name}' initialization failed: {e}");

                InitializationFailed?.Invoke(this, new DatabaseModelConnectionErrorArgs(e));

                return;
            }
            finally
            {
                OracleSchemaResolver.UnregisterActiveModel(this);
            }

            _isInitialized = true;

            RaiseEvent(Initialized);

            RefreshIfNeeded();

            if (_isDisposed)
            {
                return;
            }

            SetRefreshTimerInterval();
            _refreshTimer.Elapsed += RefreshTimerElapsedHandler;
            _refreshTimer.Start();
        }
Esempio n. 2
0
        internal void Disconnect(OracleException exception)
        {
            OracleSchemaResolver.Unregister(this);

            if (!_isInitialized)
            {
                return;
            }

            _isInitialized = false;

            Disconnected?.Invoke(this, new DatabaseModelConnectionErrorArgs(exception));
        }
Esempio n. 3
0
            public static IReadOnlyCollection <OracleSchema> ResolveSchemas(OracleDatabaseModel databaseModel)
            {
                OracleSchemaResolver resolver;

                lock (ActiveResolvers)
                {
                    var connectionString = databaseModel.ConnectionString.ConnectionString;

                    GetActiveModels(connectionString).Add(databaseModel);

                    if (!ActiveResolvers.TryGetValue(connectionString, out resolver))
                    {
                        resolver = new OracleSchemaResolver(databaseModel);
                        ActiveResolvers.Add(connectionString, resolver);
                    }
                }

                resolver.ResolveSchemas();
                return(resolver._schemas);
            }