public void SyncFxDeprovisionDatabase(object sender, ExecutedRoutedEventArgs e) { var databaseInfo = ValidateMenuInfo(sender); if (databaseInfo == null) { return; } if (databaseInfo.DatabaseInfo.DatabaseType != DatabaseType.SQLCE35) { EnvDteHelper.ShowError("Sorry, only version 3.5 databases are supported for now"); return; } if (!SyncFxHelper.IsProvisioned(databaseInfo.DatabaseInfo)) { EnvDteHelper.ShowError("The database is not provisioned, cannot deprovision"); return; } try { new SyncFxHelper().DeprovisionDatabase(databaseInfo.DatabaseInfo.ConnectionString); databaseInfo.ExplorerControl.RefreshTables(databaseInfo.DatabaseInfo); EnvDteHelper.ShowMessage("Database deprovisioned"); DataConnectionHelper.LogUsage("DatabaseSyncDeprovision"); } catch (Exception ex) { DataConnectionHelper.SendError(ex, databaseInfo.DatabaseInfo.DatabaseType, false); } }
public void SyncFxGenerateSnapshot(object sender, ExecutedRoutedEventArgs e) { var databaseInfo = ValidateMenuInfo(sender); if (databaseInfo == null) { return; } if (databaseInfo.DatabaseInfo.DatabaseType != DatabaseType.SQLCE35) { EnvDteHelper.ShowError("Sorry, only version 3.5 databases are supported for now"); return; } if (!SyncFxHelper.IsProvisioned(databaseInfo.DatabaseInfo)) { EnvDteHelper.ShowError("The database is not provisioned, cannot generate snapshots"); return; } var fd = new SaveFileDialog { Title = "Save generated snapshot database file as", Filter = DataConnectionHelper.GetSqlCeFileFilter(), OverwritePrompt = true, ValidateNames = true }; var result = fd.ShowDialog(); if (!result.HasValue || !result.Value) { return; } var fileName = fd.FileName; try { SyncFxHelper.GenerateSnapshot(databaseInfo.DatabaseInfo.ConnectionString, fileName); EnvDteHelper.ShowMessage("Database snapshot generated."); DataConnectionHelper.LogUsage("DatabaseSyncSnapshot"); } catch (Exception ex) { DataConnectionHelper.SendError(ex, DatabaseType.SQLCE35, false); } }
private void GetScopes(object sender, RoutedEventArgs args, KeyValuePair<string, DatabaseInfo> database) { var viewItem = sender as DatabaseTreeViewItem; // Prevent loading again and again if (viewItem != null && (viewItem.Items.Count > 0 && viewItem.Items[0].ToString() == "Loading...")) { var scopeList = new List<string>(); try { if (SyncFxHelper.IsProvisioned(database.Value)) scopeList = SyncFxHelper.GetSqlCeScopes(database.Value.ConnectionString).OrderBy(s => s).ToList(); } catch (Exception e) { DataConnectionHelper.SendError(e, DatabaseType.SQLCE35); return; } Dispatcher.BeginInvoke(new FillScopeItemsHandler(FillScopeItems), database, viewItem, scopeList); } args.Handled = true; }