private static StudioController Build() { var manager = new ObjectExplorerManager(); var srvWatcher = new ServerWatcher(manager); var sudioCtrl = new StudioController(manager, srvWatcher); return(sudioCtrl); }
public StudioController(ObjectExplorerManager mgr, IServerWatcher watcher) { manager = mgr; _srvWatcher = watcher; _srvWatcher.OnServersAdded += _srvWatcher_OnServersAdded; _srvWatcher.OnServersRemoved += _srvWatcher_OnServersRemoved; Servers = new Dictionary <IServer, DatabaseLoader>(); }
/// <summary> /// Initialization of the package; this method is called right after the package is sited, so this is the place /// where you can put all the initialization code that rely on services provided by VisualStudio. /// </summary> protected override void Initialize() { BaseCommand.Initialize(this); PasteAsCSVCommand.Initialize(this); base.Initialize(); AddSkipLoading(); _objectExplorerManager = new ObjectExplorerManager(this); _objectExplorerManager.SetObjectExplorerEventProvider(); }
private void ComboBoxConnections_DropDown(object sender, System.EventArgs e) { try { comboBoxConnections.Items.Clear(); comboBoxConnections.DisplayMember = "ServerName"; comboBoxConnections.Items.AddRange(ObjectExplorerManager.GetSqlServerConnections()); } catch (Exception ex) { ex.HandleException(display: true); } }
/// <summary> /// Initialization of the package; this method is called right after the package is sited, so this is the place /// where you can put all the initialization code that rely on services provided by VisualStudio. /// </summary> protected override void Initialize() { OtherWindowsCommand.Initialize(this); ViewMenuCommand.Initialize(this); ExportImage = Resources.ExportReportData_10565; Logo = Resources.data_out_small; ScriptImage = Resources.script_16xLG; _objectExplorerManager = new ObjectExplorerManager(this); _objectExplorerManager.SetObjectExplorerEventProvider(); base.Initialize(); }
private void OnComboBoxSQLInstances_DropDown(object sender, EventArgs e) { try { comboBoxSQLInstances.Items.Clear(); comboBoxSQLInstances.DisplayMember = "Item1"; comboBoxSQLInstances.Items.AddRange(ObjectExplorerManager.GetSqlServerConnectionsExtended()); } catch (Exception ex) { ex.HandleException(display: true); } }
/// <summary> /// Initialization of the package; this method is called right after the package is sited, so this is the place /// where you can put all the initialization code that rely on services provided by VisualStudio. /// </summary> protected override void Initialize() { try { OtherWindowsCommand.Initialize(this); ViewMenuCommand.Initialize(this); ExportImage = Resources.ExportReportData_10565; Logo = Resources.data_out_small; ScriptImage = Resources.script_16xLG; base.Initialize(); _objectExplorerManager = new ObjectExplorerManager(this); _objectExplorerManager.SetObjectExplorerEventProvider(); } catch (Exception ex) { SetStatus("SQLite Toolbox error: " + ex.Message); } }
internal static Dictionary <string, DatabaseInfo> GetDataConnections(SqlCeToolboxPackage package, bool includeServerConnections, bool serverConnectionsOnly) { // http://www.mztools.com/articles/2007/MZ2007018.aspx Dictionary <string, DatabaseInfo> databaseList = new Dictionary <string, DatabaseInfo>(); var dataExplorerConnectionManager = package.GetServiceHelper(typeof(IVsDataExplorerConnectionManager)) as IVsDataExplorerConnectionManager; //Test code... //var objIVsDataProviderManager = package.GetServiceHelper(typeof(IVsDataProviderManager)) as IVsDataProviderManager; //var objIVsDataConnectionManager = package.GetServiceHelper(typeof(IVsDataConnectionManager)) as IVsDataConnectionManager; //var objIVsDataSourceManager = package.GetServiceHelper(typeof(IVsDataSourceManager)) as IVsDataSourceManager; //IVsDataProvider objIVsDataProvider; //foreach (var objIVsDataSource in objIVsDataSourceManager.Sources) //{ // //System.Diagnostics.Debug.WriteLine(objIVsDataSource.DisplayName); // //System.Diagnostics.Debug.WriteLine(objIVsDataSource.Guid.ToString()); // //foreach (var objProviderGuid in objIVsDataSource.GetProviders()) // //{ // // objIVsDataProvider = objIVsDataProviderManager.GetDataProvider(objProviderGuid); // // System.Diagnostics.Debug.WriteLine(objIVsDataProvider.DisplayName); // // System.Diagnostics.Debug.WriteLine(objIVsDataProvider.Guid.ToString()); // //} //} // End test code Guid provider35 = new Guid(Resources.SqlCompact35Provider); Guid provider40 = new Guid(Resources.SqlCompact40Provider); Guid provider40Private = new Guid(Resources.SqlCompact40PrivateProvider); Guid providerSqLite = new Guid(Resources.SQLiteProvider); Guid providerSqlitePrivate = new Guid(Resources.SqlitePrivateProvider); bool isV35Installed = RepositoryHelper.IsV35Installed() && DdexProviderIsInstalled(provider35); bool isV40Installed = RepositoryHelper.IsV40Installed() && (DdexProviderIsInstalled(provider40) || DdexProviderIsInstalled(provider40Private)); if (dataExplorerConnectionManager != null) { foreach (var connection in dataExplorerConnectionManager.Connections.Values) { try { var objProviderGuid = connection.Provider; if (!serverConnectionsOnly) { if ((objProviderGuid == provider35 && isV35Installed) || (objProviderGuid == provider40 && isV40Installed) || (objProviderGuid == provider40Private && isV40Installed)) { DatabaseType dbType = DatabaseType.SQLCE40; if (objProviderGuid == provider35) { dbType = DatabaseType.SQLCE35; } var serverVersion = "4.0"; if (dbType == DatabaseType.SQLCE35) { serverVersion = "3.5"; } var sConnectionString = DataProtection.DecryptString(connection.EncryptedConnectionString); if (!sConnectionString.Contains("Mobile Device")) { DatabaseInfo info = new DatabaseInfo() { Caption = connection.DisplayName, FromServerExplorer = true, DatabaseType = dbType, ServerVersion = serverVersion, ConnectionString = sConnectionString }; info.FileIsMissing = RepositoryHelper.IsMissing(info); if (!databaseList.ContainsKey(sConnectionString)) { databaseList.Add(sConnectionString, info); } } } if (objProviderGuid == providerSqLite || objProviderGuid == providerSqlitePrivate) { DatabaseType dbType = DatabaseType.SQLite; var sConnectionString = DataProtection.DecryptString(connection.EncryptedConnectionString); DatabaseInfo info = new DatabaseInfo() { Caption = connection.DisplayName, FromServerExplorer = true, DatabaseType = dbType, ServerVersion = RepositoryHelper.SqliteEngineVersion, ConnectionString = sConnectionString }; info.FileIsMissing = RepositoryHelper.IsMissing(info); if (!databaseList.ContainsKey(sConnectionString)) { databaseList.Add(sConnectionString, info); } } } if (includeServerConnections && objProviderGuid == new Guid(Resources.SqlServerDotNetProvider)) { var sConnectionString = DataProtection.DecryptString(connection.EncryptedConnectionString); var info = new DatabaseInfo() { Caption = connection.DisplayName, FromServerExplorer = true, DatabaseType = DatabaseType.SQLServer, ServerVersion = string.Empty, ConnectionString = sConnectionString }; if (!databaseList.ContainsKey(sConnectionString)) { databaseList.Add(sConnectionString, info); } } } catch (KeyNotFoundException) { } catch (NullReferenceException) { } catch (ArgumentException) { } } } #if SSMS try { if (package.TelemetryVersion().Major == 140 && Properties.Settings.Default.GetObjectExplorerDatabases) { var objectExplorerManager = new ObjectExplorerManager(package); var list = objectExplorerManager.GetAllServerUserDatabases(); foreach (var item in list) { if (!databaseList.ContainsKey(item.Key)) { databaseList.Add(item.Key, item.Value); } } } } catch (MissingMethodException) { } #endif return(databaseList); }
public ServerWatcher(ObjectExplorerManager manager) { _manager = manager; _manager.OnNewServerConnected += new Action <SqlConnectionInfo>(_manager_OnNewServerConnected); Start(); }
internal static Dictionary<string, DatabaseInfo> GetDataConnections(SqlCeToolboxPackage package, bool includeServerConnections, bool serverConnectionsOnly) { // http://www.mztools.com/articles/2007/MZ2007018.aspx Dictionary<string, DatabaseInfo> databaseList = new Dictionary<string, DatabaseInfo>(); var dataExplorerConnectionManager = package.GetServiceHelper(typeof(IVsDataExplorerConnectionManager)) as IVsDataExplorerConnectionManager; //Test code... //var objIVsDataProviderManager = package.GetServiceHelper(typeof(IVsDataProviderManager)) as IVsDataProviderManager; //var objIVsDataConnectionManager = package.GetServiceHelper(typeof(IVsDataConnectionManager)) as IVsDataConnectionManager; //var objIVsDataSourceManager = package.GetServiceHelper(typeof(IVsDataSourceManager)) as IVsDataSourceManager; //IVsDataProvider objIVsDataProvider; //foreach (var objIVsDataSource in objIVsDataSourceManager.Sources) //{ // //System.Diagnostics.Debug.WriteLine(objIVsDataSource.DisplayName); // //System.Diagnostics.Debug.WriteLine(objIVsDataSource.Guid.ToString()); // //foreach (var objProviderGuid in objIVsDataSource.GetProviders()) // //{ // // objIVsDataProvider = objIVsDataProviderManager.GetDataProvider(objProviderGuid); // // System.Diagnostics.Debug.WriteLine(objIVsDataProvider.DisplayName); // // System.Diagnostics.Debug.WriteLine(objIVsDataProvider.Guid.ToString()); // //} //} // End test code Guid provider35 = new Guid(Resources.SqlCompact35Provider); Guid provider40 = new Guid(Resources.SqlCompact40Provider); Guid providerSqLite = new Guid(Resources.SQLiteProvider); bool isV35Installed = IsV35Installed() && DdexProviderIsInstalled(provider35); bool isV40Installed = IsV40Installed() && DdexProviderIsInstalled(provider40); if (dataExplorerConnectionManager != null) { foreach (var connection in dataExplorerConnectionManager.Connections.Values) { try { var objProviderGuid = connection.Provider; if (!serverConnectionsOnly) { if ((objProviderGuid == provider35 && isV35Installed) || (objProviderGuid == provider40 && isV40Installed)) { DatabaseType dbType = DatabaseType.SQLCE40; if (objProviderGuid == provider35) dbType = DatabaseType.SQLCE35; var serverVersion = "4.0"; if (dbType == DatabaseType.SQLCE35) serverVersion = "3.5"; var sConnectionString = DataProtection.DecryptString(connection.EncryptedConnectionString); if (!sConnectionString.Contains("Mobile Device")) { DatabaseInfo info = new DatabaseInfo(); info.Caption = connection.DisplayName; info.FromServerExplorer = true; info.DatabaseType = dbType; info.ServerVersion = serverVersion; info.ConnectionString = sConnectionString; info.FileIsMissing = IsMissing(info); if (!databaseList.ContainsKey(sConnectionString)) databaseList.Add(sConnectionString, info); } } if (objProviderGuid == providerSqLite) { DatabaseType dbType = DatabaseType.SQLite; var sConnectionString = DataProtection.DecryptString(connection.EncryptedConnectionString); DatabaseInfo info = new DatabaseInfo(); info.Caption = connection.DisplayName; info.FromServerExplorer = true; info.DatabaseType = dbType; //TODO Update this when SQLite provider is updated! info.ServerVersion = "3.15"; info.ConnectionString = sConnectionString; info.FileIsMissing = IsMissing(info); if (!databaseList.ContainsKey(sConnectionString)) databaseList.Add(sConnectionString, info); } } if (includeServerConnections && objProviderGuid == new Guid(Resources.SqlServerDotNetProvider)) { var sConnectionString = DataProtection.DecryptString(connection.EncryptedConnectionString); var info = new DatabaseInfo(); info.Caption = connection.DisplayName; info.FromServerExplorer = true; info.DatabaseType = DatabaseType.SQLServer; info.ServerVersion = string.Empty; info.ConnectionString = sConnectionString; if (!databaseList.ContainsKey(sConnectionString)) databaseList.Add(sConnectionString, info); } } catch (KeyNotFoundException) { } catch (NullReferenceException) { } } } #if SSMS try { var objectExplorerManager = new ObjectExplorerManager(package); var list = objectExplorerManager.GetAllServerUserDatabases(); foreach (var item in list) { if (!databaseList.ContainsKey(item.Key)) databaseList.Add(item.Key, item.Value); } } //TODO Make SSMS 14.x (17) work with above method! catch (MissingMethodException) { } #endif return databaseList; }