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(); }
internal void Disconnect(OracleException exception) { OracleSchemaResolver.Unregister(this); if (!_isInitialized) { return; } _isInitialized = false; Disconnected?.Invoke(this, new DatabaseModelConnectionErrorArgs(exception)); }
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); }