示例#1
0
 public static void Unregister(OracleDatabaseModel databaseModel)
 {
     lock (ActiveResolvers)
     {
         var connectionString = databaseModel.ConnectionString.ConnectionString;
         ActiveResolvers.Remove(connectionString);
         GetActiveModels(connectionString).Clear();
     }
 }
示例#2
0
        private OracleDatabaseModel Clone(string modulePrefix)
        {
            var clone =
                new OracleDatabaseModel(ConnectionString, modulePrefix)
            {
                _currentSchema      = _currentSchema,
                _dataDictionary     = _dataDictionary,
                _allProgramMetadata = _allProgramMetadata,
                _uniqueConstraintReferringReferenceConstraints = _uniqueConstraintReferringReferenceConstraints
            };

            return(clone);
        }
示例#3
0
            public static void UnregisterActiveModel(OracleDatabaseModel databaseModel)
            {
                lock (ActiveResolvers)
                {
                    var connectionString = databaseModel.ConnectionString.ConnectionString;
                    var activeModels     = GetActiveModels(connectionString);
                    activeModels.Remove(databaseModel);

                    if (activeModels.Count == 0 && ActiveResolvers.TryGetValue(connectionString, out OracleSchemaResolver resolver))
                    {
                        resolver._enablePasswordRetrieval = true;
                    }
                }
            }
示例#4
0
        public static OracleDatabaseModel GetDatabaseModel(ConnectionStringSettings connectionString, string identifier = null)
        {
            OracleDatabaseModel databaseModel;

            lock (DatabaseModels)
            {
                if (DatabaseModels.TryGetValue(connectionString.ConnectionString, out databaseModel))
                {
                    databaseModel = databaseModel.Clone(identifier);
                }
                else
                {
                    DatabaseModels[connectionString.ConnectionString] = databaseModel = new OracleDatabaseModel(connectionString, identifier);
                }
            }

            return(databaseModel);
        }
示例#5
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);
            }
示例#6
0
 private OracleSchemaResolver(OracleDatabaseModel databaseModel)
 {
     _databaseModel = databaseModel;
 }
示例#7
0
 private async Task UpdateDataModel(CancellationToken cancellationToken, IModelDataProvider scriptDataProvider)
 {
     var connectionString = OracleConnectionStringRepository.GetBackgroundConnectionString(_databaseModel.ConnectionString.ConnectionString);
     await OracleDatabaseModel.UpdateModelAsync(connectionString, _databaseModel.CurrentSchema, false, cancellationToken, scriptDataProvider);
 }
示例#8
0
 public OracleDataDictionaryMapper(OracleDatabaseModel databaseModel, Action <string> actionStatusChanged)
 {
     _actionStatusChanged = actionStatusChanged;
     _databaseModel       = databaseModel;
 }