internal void ScanConnections(SqlCeToolboxPackage package) { var dte = package.GetServiceHelper(typeof(DTE)) as DTE2; var helper = RepositoryHelper.CreateEngineHelper(DatabaseType.SQLCE40); EnvDteHelper dteHelper = new EnvDteHelper(); var list = dteHelper.GetSqlCeFilesInActiveSolution(dte); foreach (var path in list) { if (File.Exists(path)) { bool versionFound = false; SQLCEVersion version = SQLCEVersion.SQLCE20; try { version = helper.DetermineVersion(path); versionFound = true; } catch { // ignored } string connectionString = string.Format("Data Source={0}", path); if (versionFound) { if (version == SQLCEVersion.SQLCE35) { SaveDataConnection(connectionString, DatabaseType.SQLCE35, package); } else if (version == SQLCEVersion.SQLCE40) { SaveDataConnection(connectionString, DatabaseType.SQLCE40, package); } } else { var dbInfo = new DatabaseInfo() { DatabaseType = DatabaseType.SQLite, ConnectionString = connectionString }; try { using (var repo = Helpers.RepositoryHelper.CreateRepository(dbInfo)) { repo.GetAllTableNames(); } SaveDataConnection(connectionString, DatabaseType.SQLite, package); } catch { // ignored } } } } }
static void button_Click(object sender, RoutedEventArgs e) { var item = sender as Button; if (item != null) { EnvDteHelper.LaunchUrl(item.Tag as string); } }
public static List <TableInformationModel> GetTablesFromRepository(DatabaseInfo dbInfo, bool includeViews = false) { if (dbInfo.DataConnection != null) { dbInfo.DataConnection.Open(); dbInfo.ConnectionString = DataProtection.DecryptString(dbInfo.DataConnection.EncryptedConnectionString); } if (dbInfo.DatabaseType == DatabaseType.Npgsql) { return(EnvDteHelper.GetNpgsqlTableNames(dbInfo.ConnectionString, includeViews)); } if (dbInfo.DatabaseType == DatabaseType.Mysql) { return(EnvDteHelper.GetMysqlTableNames(dbInfo.ConnectionString, includeViews)); } if (dbInfo.DatabaseType == DatabaseType.Oracle) { return(EnvDteHelper.GetOracleTableNames(dbInfo.ConnectionString, includeViews)); } using (var repository = RepositoryHelper.CreateRepository(dbInfo)) { var allPks = repository.GetAllPrimaryKeys(); var tableList = repository.GetTableNamesForExclusion(); var tables = new List <TableInformationModel>(); foreach (var table in tableList) { var hasPrimaryKey = allPks.Any(m => m.TableName == table.TableName); var name = string.IsNullOrEmpty(table.Schema) ? table.TableName : $"[{table.Schema}].[{table.Name}]"; var info = new TableInformationModel(name, includeViews ? true : hasPrimaryKey, includeViews ? !hasPrimaryKey : false); tables.Add(info); } if (includeViews) { var views = repository.GetAllViews(); foreach (var view in views) { var info = new TableInformationModel(view.ViewName, true, true); tables.Add(info); } } return(tables.OrderBy(l => l.Name).ToList()); } }
internal static string SendError(Exception ex, DatabaseType dbType, bool report = true) { if (ex != null) { var dontTrack = ex.GetType().Name == "SqlCeException" || ex is SqlException || ex is SQLiteException; if (!dontTrack) { Telemetry.TrackException(ex); } EnvDteHelper.ShowError(CreateEngineHelper(dbType).FormatError(ex)); } return(string.Empty); }