protected virtual ICoreChildProvider GetChildProvider() { // Build new CoreChildProvider in a temp then update to it to avoid stale references ICoreChildProvider temp = null; //prefer a linked repository with both if (RepositoryLocator.DataExportRepository != null) { try { temp = new DataExportChildProvider(RepositoryLocator, PluginUserInterfaces.ToArray(), GlobalErrorCheckNotifier, CoreChildProvider as DataExportChildProvider); } catch (Exception e) { ShowException("Error constructing DataExportChildProvider", e); } } //there was an error generating a data export repository or there was no repository specified //so just create a catalogue one if (temp == null) { temp = new CatalogueChildProvider(RepositoryLocator.CatalogueRepository, PluginUserInterfaces.ToArray(), GlobalErrorCheckNotifier, CoreChildProvider as CatalogueChildProvider); } // first time if (CoreChildProvider == null) { CoreChildProvider = temp; } else { CoreChildProvider.UpdateTo(temp); } return(CoreChildProvider); }
/// <inheritdoc/> public virtual void Publish(DatabaseEntity databaseEntity) { var fresh = GetChildProvider(); CoreChildProvider.UpdateTo(fresh); }
/// <inheritdoc/> public virtual void Publish(IMapsDirectlyToDatabaseTable databaseEntity) { var fresh = GetChildProvider(); CoreChildProvider.UpdateTo(fresh); }