public PlatformDatabaseCreationRepositoryFinder(PlatformDatabaseCreationOptions options) { var cata = options.GetBuilder(PlatformDatabaseCreation.DefaultCatalogueDatabaseName); var export = options.GetBuilder(PlatformDatabaseCreation.DefaultDataExportDatabaseName); _linkedRepositoryProvider = new LinkedRepositoryProvider(cata.ConnectionString, export.ConnectionString); }
public virtual IRDMPPlatformRepositoryServiceLocator GetRepositoryLocator() { if (_repositoryLocator == null) { GetConnectionStrings(out var c, out var d); _repositoryLocator = new LinkedRepositoryProvider(c?.ConnectionString, d?.ConnectionString); } return(_repositoryLocator); }
public void AllowDeletingWhenDataExportManagerIsNotSet() { var noDataExportManagerExists = new LinkedRepositoryProvider(CatalogueRepository.ConnectionString,null); var obscura1 = new BetweenCatalogueAndDataExportObscureDependencyFinder(RepositoryLocator); var obscura2 = new BetweenCatalogueAndDataExportObscureDependencyFinder(noDataExportManagerExists); var cata = new Catalogue(CatalogueRepository, "MyCata"); var dataset = new ExtractableDataSet(DataExportRepository,cata); //we cannot delete it because there is a dependency var ex = Assert.Throws<Exception>(() => obscura1.ThrowIfDeleteDisallowed(cata)); Assert.IsTrue(ex.Message.Contains("Cannot delete Catalogue MyCata because there are ExtractableDataSets which depend on them ")); //the second finder simulates when the repository locator doesn't have a record of the data export repository so it is unable to check it so it will let you delete it just fine Assert.DoesNotThrow(() => obscura2.ThrowIfDeleteDisallowed(cata)); //now delete them in the correct order dataset.DeleteInDatabase(); cata.DeleteInDatabase(); }
public virtual IRDMPPlatformRepositoryServiceLocator GetRepositoryLocator() { if (_repositoryLocator == null) { SqlConnectionStringBuilder c; if (CatalogueConnectionString != null) { c = new SqlConnectionStringBuilder(CatalogueConnectionString); } else { c = new SqlConnectionStringBuilder(); c.DataSource = ServerName; c.IntegratedSecurity = true; c.InitialCatalog = CatalogueDatabaseName; } SqlConnectionStringBuilder d = null; if (DataExportConnectionString != null) { d = new SqlConnectionStringBuilder(DataExportConnectionString); } else if (DataExportDatabaseName != null) { d = new SqlConnectionStringBuilder(); d.DataSource = ServerName; d.IntegratedSecurity = true; d.InitialCatalog = DataExportDatabaseName; } CatalogueRepository.SuppressHelpLoading = true; _repositoryLocator = new LinkedRepositoryProvider(c.ConnectionString, d != null ? d.ConnectionString : null); } return(_repositoryLocator); }