internal Dictionary <string, DatabaseConnectionModel> GetDataConnections(EFCorePowerToolsPackage package) { var credentialStore = new CredentialStore(); // http://www.mztools.com/articles/2007/MZ2007018.aspx Dictionary <string, DatabaseConnectionModel> databaseList = new Dictionary <string, DatabaseConnectionModel>(); var dataExplorerConnectionManager = package.GetService <IVsDataExplorerConnectionManager>(); Guid providerSqLite = new Guid(EFCorePowerTools.Shared.Resources.SQLiteProvider); Guid providerSqlitePrivate = new Guid(EFCorePowerTools.Shared.Resources.SQLitePrivateProvider); Guid providerNpgsql = new Guid(Resources.NpgsqlProvider); Guid providerMysql = new Guid(Resources.MysqlVSProvider); Guid providerOracle = new Guid(Resources.OracleProvider); if (dataExplorerConnectionManager?.Connections?.Values != null) { foreach (var connection in dataExplorerConnectionManager.Connections.Values) { try { var sConnectionString = DataProtection.DecryptString(connection.EncryptedConnectionString); var info = new DatabaseConnectionModel() { ConnectionName = connection.DisplayName, DatabaseType = DatabaseType.Undefined, ConnectionString = sConnectionString, DataConnection = connection.Connection, }; var objProviderGuid = connection.Provider; if (objProviderGuid == providerSqLite || objProviderGuid == providerSqlitePrivate) { info.DatabaseType = DatabaseType.SQLite; } if (objProviderGuid == new Guid(Resources.SqlServerDotNetProvider) || objProviderGuid == providerNpgsql) { info.DatabaseType = objProviderGuid == providerNpgsql ? DatabaseType.Npgsql : DatabaseType.SQLServer; } // This provider depends on https://dev.mysql.com/downloads/windows/visualstudio/ if (objProviderGuid == providerMysql) { info.DatabaseType = DatabaseType.Mysql; } if (objProviderGuid == providerOracle) { info.DatabaseType = DatabaseType.Oracle; } if (info.DatabaseType != DatabaseType.Undefined && !databaseList.ContainsKey(sConnectionString)) { databaseList.Add(sConnectionString, info); } } catch (Exception ex) { package.LogError(new List <string> { ex.Message }, ex); } } } try { foreach (var connection in credentialStore.GetStoredDatabaseConnections()) { databaseList.Add(connection.ConnectionName, connection); } } catch (Exception ex) { package.LogError(new List <string> { ex.Message }, ex); } return(databaseList); }
public ReverseEngineerHandler(EFCorePowerToolsPackage package) { _package = package; }
internal static Dictionary <string, DatabaseInfo> GetDataConnections(EFCorePowerToolsPackage package) { // http://www.mztools.com/articles/2007/MZ2007018.aspx Dictionary <string, DatabaseInfo> databaseList = new Dictionary <string, DatabaseInfo>(); var dataExplorerConnectionManager = package.GetService <IVsDataExplorerConnectionManager>(); Guid provider40 = new Guid(EFCorePowerTools.Shared.Resources.SqlCompact40Provider); Guid provider40Private = new Guid(EFCorePowerTools.Shared.Resources.SqlCompact40PrivateProvider); Guid providerSqLite = new Guid(EFCorePowerTools.Shared.Resources.SQLiteProvider); Guid providerSqlitePrivate = new Guid(EFCorePowerTools.Shared.Resources.SQLitePrivateProvider); Guid providerNpgsql = new Guid(Resources.NpgsqlProvider); Guid providerMysql = new Guid(Resources.MysqlVSProvider); bool isV40Installed = RepositoryHelper.IsV40Installed() && (DdexProviderIsInstalled(provider40) || DdexProviderIsInstalled(provider40Private)); if (dataExplorerConnectionManager != null) { foreach (var connection in dataExplorerConnectionManager.Connections.Values) { try { var sConnectionString = DataProtection.DecryptString(connection.EncryptedConnectionString); var info = new DatabaseInfo() { Caption = connection.DisplayName, FromServerExplorer = true, DatabaseType = DatabaseType.SQLCE35, ConnectionString = sConnectionString }; var objProviderGuid = connection.Provider; if ((objProviderGuid == provider40 && isV40Installed || objProviderGuid == provider40Private && isV40Installed) && !sConnectionString.Contains("Mobile Device")) { info.DatabaseType = DatabaseType.SQLCE40; } if (objProviderGuid == providerSqLite || objProviderGuid == providerSqlitePrivate) { info.DatabaseType = DatabaseType.SQLite; } if (objProviderGuid == new Guid(Resources.SqlServerDotNetProvider) || objProviderGuid == providerNpgsql) { info.DatabaseType = objProviderGuid == providerNpgsql ? DatabaseType.Npgsql : DatabaseType.SQLServer; } // This provider depends on https://dev.mysql.com/downloads/windows/visualstudio/ if (objProviderGuid == providerMysql) { info.DatabaseType = DatabaseType.Mysql; } if (info.DatabaseType != DatabaseType.SQLCE35 && !databaseList.ContainsKey(sConnectionString)) { databaseList.Add(sConnectionString, info); } } catch (KeyNotFoundException) { } catch (NullReferenceException) { } } } return(databaseList); }
public ReverseEngineerHandler(EFCorePowerToolsPackage package) { _package = package; reverseEngineerHelper = new ReverseEngineerHelper(); }
public ModelAnalyzerHandler(EFCorePowerToolsPackage package) { _package = package; }
public DgmlNugetHandler(EFCorePowerToolsPackage package) { _package = package; }
public ServerDgmlHandler(EFCorePowerToolsPackage package) { _package = package; }