protected virtual void OkClicked(object sender, EventArgs e) { if (context.IsTemporary) { try { //make it a real connection context and fill in the database IConnectionPool pool = DbFactoryService.CreateConnectionPool(DatabaseConnection); pool.Initialize(); ISchemaProvider provider = DbFactoryService.CreateSchemaProvider(DatabaseConnection, pool); DatabaseSchema db = provider.CreateDatabaseSchema(settingsWidget.ConnectionSettings.Database); OnBeforeDatabaseCreation(db); ((AbstractEditSchemaProvider)provider).CreateDatabase(db); context.ConnectionSettings.Database = settingsWidget.ConnectionSettings.Database; context.ConnectionSettings.Name = settingsWidget.ConnectionSettings.Name; context.IsTemporary = false; MessageService.ShowMessage(AddinCatalog.GetString("Database has been created.")); ConnectionContextService.AddDatabaseConnectionContext(context); } catch (Exception ex) { QueryService.RaiseException(ex); Respond(ResponseType.Close); return; } } Respond(ResponseType.Ok); }
private void OnDropDatabaseThreaded(object state) { DatabaseConnectionContext context = (DatabaseConnectionContext)CurrentNode.DataItem; try { context.ConnectionPool.Initialize(); ISchemaProvider provider = context.SchemaProvider; DatabaseSchema db = provider.CreateDatabaseSchema(context.ConnectionSettings.Database); IEditSchemaProvider schemaProvider = (IEditSchemaProvider)context.SchemaProvider; schemaProvider.DropDatabase(db); ConnectionContextService.RemoveDatabaseConnectionContext(context); } catch (Exception ex) { DispatchService.GuiDispatch(delegate { MessageService.ShowException(ex); }); } }