Example #1
0
        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);
     }
 }
Example #9
0
        public DatabaseTreeViewItemSelectedObject([NotNull] DatabaseTreeViewItem databaseTreeViewItem) : base(databaseTreeViewItem.DatabaseUri.Site)
        {
            Assert.ArgumentNotNull(databaseTreeViewItem, nameof(databaseTreeViewItem));

            DatabaseTreeViewItem = databaseTreeViewItem;
        }