public void SetActive() { var databaseUri = SelectItemDialog.DatabaseUri; if (databaseUri == DatabaseUri.Empty) { return; } if (!loaded) { loaded = true; BaseTreeViewItem treeViewItem; if (SelectItemDialog.ShowAllDatabases) { treeViewItem = new SiteTreeViewItem(databaseUri.Site) { Text = databaseUri.Site.Name }; } else { treeViewItem = new DatabaseTreeViewItem(databaseUri) { Text = databaseUri.DatabaseName.ToString() }; } treeViewItem.MakeExpandable(); ContentTreeView.TreeView.Items.Add(treeViewItem); treeViewItem.ExpandAndWait(); } if (SelectItemDialog.SelectedItemUri != ItemUri.Empty) { ContentTreeView.ExpandTo(SelectItemDialog.SelectedItemUri); } else if (!string.IsNullOrEmpty(SelectItemDialog.InitialItemPath)) { ContentTreeView.ExpandTo(databaseUri, SelectItemDialog.InitialItemPath); } else if (!string.IsNullOrEmpty(SelectItemDialog.SettingsKey)) { var id = AppHost.Settings.GetString("SelectItemDialog\\" + SelectItemDialog.SettingsKey, databaseUri.ToString(), string.Empty); if (id.IsGuid()) { Guid guid; if (Guid.TryParse(id, out guid)) { var itemUri = new ItemUri(databaseUri, new ItemId(guid)); ContentTreeView.ExpandTo(itemUri); } } } ContentTreeView.SetFocus(); }
private void FillSubItems(KeyValuePair <string, string> database, DatabaseTreeViewItem parentItem, IList <string> nameList) { parentItem.Items.Clear(); foreach (var sub in nameList) { var item = TreeViewHelper.CreateTreeViewItemWithImage(sub, "../Resources/subs.png", false); item.ContextMenu = new SubscriptionsContextMenu(new MenuCommandParameters { Connectionstring = database.Value, Name = sub, MenuItemType = MenuCommandParameters.MenuType.Manage, Caption = database.Key }, this); parentItem.Items.Add(item); } }
private void FillTableItems(KeyValuePair <string, string> database, DatabaseTreeViewItem parentItem, IList <string> nameList) { parentItem.Items.Clear(); if (DescriptionCache != null) { var dbdesc = DescriptionCache.Where(dc => dc.Parent == null && dc.Object == null).Select(dc => dc.Description).SingleOrDefault(); if (!string.IsNullOrWhiteSpace(dbdesc)) { if (parentItem.Parent is DatabaseTreeViewItem) { var dbItem = (DatabaseTreeViewItem)parentItem.Parent; dbItem.ToolTip = dbItem.ToolTip.ToString() + Environment.NewLine + dbdesc; } } } using (var _repository = RepoHelper.CreateRepository(database.Value)) { var columns = _repository.GetAllColumns(); foreach (var table in nameList) { if (!Properties.Settings.Default.DisplayDescriptionTable && table.Equals("__ExtendedProperties")) { continue; } var item = TreeViewHelper.CreateTreeViewItemWithImage(table, "../Resources/table.png", true, null, true); item.ContextMenu = new TableContextMenu(new MenuCommandParameters { Connectionstring = database.Value, Name = table, MenuItemType = MenuCommandParameters.MenuType.Table, Caption = database.Key }, this); item.ToolTip = table; if (DescriptionCache != null) { var desc = DescriptionCache.Where(dc => dc.Parent == null && dc.Object == table).Select(dc => dc.Description).SingleOrDefault(); if (!string.IsNullOrWhiteSpace(desc)) { item.ToolTip = desc; } } var tableColumns = (from col in columns where col.TableName == table select col).ToList <Column>(); parentItem.Items.Add(item); item.Expanded += (s, e) => GetTableColumns(s, e, tableColumns, database); } } }
private void FillTableItems(KeyValuePair <string, DatabaseInfo> database, DatabaseTreeViewItem parentItem, Exception ex, RoutedEventArgs args) { if (ex != null) { var error = DataConnectionHelper.CreateEngineHelper(database.Value.DatabaseType).FormatError(ex); if (error.Contains("Minor Err.: 25028")) { var pwd = new PasswordDialog(); pwd.ShowModal(); if (pwd.DialogResult.HasValue && pwd.DialogResult.Value && !string.IsNullOrWhiteSpace(pwd.Password)) { database.Value.ConnectionString = database.Value.ConnectionString + ";Password="******"locale identifier") { dbInfo.LCID = int.Parse(values.Value); } if (values.Key.ToLowerInvariant() == "encryption mode") { dbInfo.EncryptionMode = values.Value; } if (string.IsNullOrWhiteSpace(dbInfo.EncryptionMode)) { dbInfo.EncryptionMode = "None"; } if (values.Key.ToLowerInvariant() == "case sensitive") { dbInfo.CaseSensitive = bool.Parse(values.Value); } if (values.Key == "DatabaseSize") { dbInfo.Size = values.Value; } if (values.Key == "SpaceAvailable") { dbInfo.SpaceAvailable = values.Value; } if (values.Key == "Created") { dbInfo.Created = values.Value; } if (values.Key == "ServerVersion") { dbInfo.ServerVersion = values.Value; } } TrackSelection(dbInfo); } } var tables = repository.GetAllTableNames(); var columns = repository.GetAllColumns(); var primaryKeys = repository.GetAllPrimaryKeys(); var foreignKeys = repository.GetAllForeignKeys(); var indexes = repository.GetAllIndexes(); var triggers = repository.GetAllTriggers(); foreach (var table in tables) { if (!Properties.Settings.Default.DisplayDescriptionTable && table.Equals("__ExtendedProperties")) { continue; } var item = TreeViewHelper.CreateTreeViewItemWithImage(table, "../Resources/table_16xLG.png", true); item.ContextMenu = new TableContextMenu(new MenuCommandParameters { DatabaseInfo = database.Value, Name = table, MenuItemType = MenuType.Table }, _parentWindow); item.ToolTip = table; item.Tag = new TableInfo { Name = table, RowCount = repository.GetRowCount(table) }; if (DescriptionCache != null) { var desc = DescriptionCache.Where(dc => dc.Parent == null && dc.Object == table).Select(dc => dc.Description).SingleOrDefault(); if (!string.IsNullOrWhiteSpace(desc)) { item.ToolTip = desc; } } var tableColumns = (from col in columns where col.TableName == table select col).ToList(); var tablePrimaryKeys = primaryKeys.Where(pk => pk.TableName == table).ToList(); var tableForeignKeys = foreignKeys.Where(fk => fk.ConstraintTableName == table).ToList(); var tableIndexes = indexes.Where(i => i.TableName == table).ToList(); var tableTriggers = triggers.Where(t => t.TableName == table).ToList(); parentItem.Items.Add(item); item.Expanded += (s, e) => GetTableColumns(s, e, tableColumns, tableForeignKeys, tablePrimaryKeys, tableIndexes, tableTriggers, database); } } } catch (Exception ex2) { DataConnectionHelper.SendError(ex2, database.Value.DatabaseType, false); } }
private static void FillViewItems(KeyValuePair <string, DatabaseInfo> database, DatabaseTreeViewItem parentItem, IList <View> viewList) { parentItem.Items.Clear(); foreach (var view in viewList) { var item = TreeViewHelper.CreateTreeViewItemWithImage(view.ViewName, "../Resources/table_16xLG.png", false); item.ContextMenu = new ViewContextMenu(new MenuCommandParameters { DatabaseInfo = database.Value, Name = view.ViewName, MenuItemType = MenuType.Manage, Description = view.Definition }, _parentWindow); parentItem.Items.Add(item); } }
private static void FillScopeItems(KeyValuePair <string, DatabaseInfo> database, DatabaseTreeViewItem parentItem, IList <string> scopeList) { parentItem.Items.Clear(); foreach (var scope in scopeList) { var item = TreeViewHelper.CreateTreeViewItemWithImage(scope, "../Resources/Synchronize_16xLG.png", true); item.ContextMenu = new ScopesContextMenu(new MenuCommandParameters { DatabaseInfo = database.Value, Name = scope, MenuItemType = MenuType.Manage }, _parentWindow); parentItem.Items.Add(item); var tables = SyncFxHelper.GetSqlCeScopeDefinition(database.Value.ConnectionString, scope).Select(s => s.TableName).Distinct(); item.Expanded += (s, e) => GetScopeTables(s, e, tables, database); } }
private static void FillSubItems(KeyValuePair <string, DatabaseInfo> database, DatabaseTreeViewItem parentItem, IList <string> nameList) { parentItem.Items.Clear(); foreach (var sub in nameList) { var item = TreeViewHelper.CreateTreeViewItemWithImage(sub, "../Resources/arrow_Sync_16xLG.png", false); item.ContextMenu = new SubscriptionsContextMenu(new MenuCommandParameters { DatabaseInfo = database.Value, Name = sub, MenuItemType = MenuType.Manage }, _parentWindow); parentItem.Items.Add(item); } }
private static void FillTriggerItems(KeyValuePair <string, DatabaseInfo> database, DatabaseTreeViewItem parentItem, IList <Trigger> triggerList) { if (triggerList == null) { throw new ArgumentNullException(nameof(triggerList)); } parentItem.Items.Clear(); foreach (var trigger in triggerList) { var item = TreeViewHelper.CreateTreeViewItemWithImage(trigger.TriggerName, "../Resources/RunOutline.png", false); item.ContextMenu = new TriggerContextMenu(new MenuCommandParameters { DatabaseInfo = database.Value, Name = trigger.TriggerName, MenuItemType = MenuType.Manage, Description = trigger.Definition }, _parentWindow); parentItem.Items.Add(item); } }
public DatabaseTreeViewItemSelectedObject([NotNull] DatabaseTreeViewItem databaseTreeViewItem) : base(databaseTreeViewItem.DatabaseUri.Site) { Assert.ArgumentNotNull(databaseTreeViewItem, nameof(databaseTreeViewItem)); DatabaseTreeViewItem = databaseTreeViewItem; }