コード例 #1
0
        private void service_GetServerInfoCompleted(object sender, GetServerInfoCompletedEventArgs e)
        {
            this.Busy.IsBusy = false;

            if (e.Error != null)
            {
                e.Error.ShowError();
                return;
            }

            if (e.Result != null)
            {
                var rootNode = new TreeViewItem();
                rootNode.Header = new TextBlock {
                    Text = "服务器集群", FontWeight = FontWeights.Bold
                };
                foreach (var item in e.Result)
                {
                    var serverNode = new TreeViewItem();
                    serverNode.Header = item.Key.Name;
                    serverNode.Tag    = item.Value;
                    var serverInfo       = item.Value;
                    var descriptionsNode = new TreeViewItem();
                    descriptionsNode.Header = new TextBlock {
                        Text = "数据库组", FontWeight = FontWeights.Bold
                    };
                    foreach (var description in serverInfo.Descriptions.OrderBy(d => d.DatabasePrefix))
                    {
                        var dbaccess = Data.AdminConfigurationItem.MongodbAdminDatabaseConfigurationItems.Values.FirstOrDefault(_ => _.DatabasePrefix == "*" ||
                                                                                                                                description.DatabasePrefix.Contains(_.DatabasePrefix));
                        if (dbaccess == null)
                        {
                            continue;
                        }

                        var descriptionNode = new TreeViewItem();
                        descriptionNode.Header = description.DatabasePrefix;
                        descriptionNode.Tag    = description;
                        var databasesNode = new TreeViewItem();
                        databasesNode.Header = new TextBlock {
                            Text = "数据库", FontWeight = FontWeights.Bold
                        };
                        foreach (var database in serverInfo.Databases.Where(db => db.DatabasePrefix == description.DatabasePrefix).ToList())
                        {
                            var databaseNode = new TreeViewItem();
                            databaseNode.Header = database.DatabaseName;
                            databaseNode.Tag    = database;
                            var collectionsNode = new TreeViewItem();
                            collectionsNode.Header = new TextBlock {
                                Text = "表", FontWeight = FontWeights.Bold
                            };
                            foreach (var collection in database.Collections)
                            {
                                var tableAccess = dbaccess.MongodbAdminTableConfigurationItems.Values.FirstOrDefault(_ => _.TableName == "*" ||
                                                                                                                     _.TableName.Contains(collection.CollectionName));
                                if (tableAccess == null)
                                {
                                    continue;
                                }

                                var collectionNode = new TreeViewItem();
                                collectionNode.Header = collection.CollectionName;
                                collectionNode.Tag    = collection;
                                var indexesNode = new TreeViewItem();
                                indexesNode.Header = new TextBlock {
                                    Text = "索引", FontWeight = FontWeights.Bold
                                };
                                foreach (var index in collection.CollectionStatus.IndexStatusList)
                                {
                                    var indexNode = new TreeViewItem();
                                    indexNode.Header = index.Name;
                                    indexNode.Tag    = index;
                                    indexesNode.Items.Add(indexNode);
                                }
                                collectionNode.Items.Add(indexesNode);
                                collectionsNode.Items.Add(collectionNode);
                                collectionNode.IsExpanded = false;
                                indexesNode.IsExpanded    = false;
                            }
                            databaseNode.Items.Add(collectionsNode);
                            databasesNode.Items.Add(databaseNode);
                            collectionsNode.IsExpanded = false;
                            databaseNode.IsExpanded    = true;
                        }
                        descriptionNode.Items.Add(databasesNode);
                        descriptionsNode.Items.Add(descriptionNode);
                        descriptionNode.IsExpanded = true;
                        databasesNode.IsExpanded   = true;
                    }
                    serverNode.Items.Add(descriptionsNode);
                    rootNode.Items.Add(serverNode);
                    descriptionsNode.IsExpanded = true;
                    serverNode.IsExpanded       = true;
                }
                rootNode.IsExpanded = true;
                ObjectTree.Items.Add(rootNode);
            }
        }
コード例 #2
0
ファイル: Manage.xaml.cs プロジェクト: yhhno/Adhesive
        private void service_GetServerInfoCompleted(object sender, GetServerInfoCompletedEventArgs e)
        {
            this.Busy.IsBusy = false;

            if (e.Error != null)
            {
                e.Error.ShowError();
                return;
            }

            if (e.Result != null)
            {
                var rootNode = new TreeViewItem();
                rootNode.Header = new TextBlock { Text = "服务器集群", FontWeight = FontWeights.Bold };
                foreach (var item in e.Result)
                {
                    var serverNode = new TreeViewItem();
                    serverNode.Header = item.Key.Name;
                    serverNode.Tag = item.Value;
                    var serverInfo = item.Value;
                    var descriptionsNode = new TreeViewItem();
                    descriptionsNode.Header = new TextBlock { Text = "数据库组", FontWeight = FontWeights.Bold };
                    foreach (var description in serverInfo.Descriptions.OrderBy(d => d.DatabasePrefix))
                    {
                        var dbaccess = Data.AdminConfigurationItem.MongodbAdminDatabaseConfigurationItems.Values.FirstOrDefault(_ => _.DatabasePrefix == "*"
                        || description.DatabasePrefix.Contains(_.DatabasePrefix));
                        if (dbaccess == null) continue;

                        var descriptionNode = new TreeViewItem();
                        descriptionNode.Header = description.DatabasePrefix;
                        descriptionNode.Tag = description;
                        var databasesNode = new TreeViewItem();
                        databasesNode.Header = new TextBlock { Text = "数据库", FontWeight = FontWeights.Bold };
                        foreach (var database in serverInfo.Databases.Where(db => db.DatabasePrefix == description.DatabasePrefix).ToList())
                        {
                            var databaseNode = new TreeViewItem();
                            databaseNode.Header = database.DatabaseName;
                            databaseNode.Tag = database;
                            var collectionsNode = new TreeViewItem();
                            collectionsNode.Header = new TextBlock { Text = "表", FontWeight = FontWeights.Bold };
                            foreach (var collection in database.Collections)
                            {
                                var tableAccess = dbaccess.MongodbAdminTableConfigurationItems.Values.FirstOrDefault(_ => _.TableName == "*"
                                        || _.TableName.Contains(collection.CollectionName));
                                if (tableAccess == null) continue;

                                var collectionNode = new TreeViewItem();
                                collectionNode.Header = collection.CollectionName;
                                collectionNode.Tag = collection;
                                var indexesNode = new TreeViewItem();
                                indexesNode.Header = new TextBlock { Text = "索引", FontWeight = FontWeights.Bold };
                                foreach (var index in collection.CollectionStatus.IndexStatusList)
                                {
                                    var indexNode = new TreeViewItem();
                                    indexNode.Header = index.Name;
                                    indexNode.Tag = index;
                                    indexesNode.Items.Add(indexNode);
                                }
                                collectionNode.Items.Add(indexesNode);
                                collectionsNode.Items.Add(collectionNode);
                                collectionNode.IsExpanded = false;
                                indexesNode.IsExpanded = false;
                            }
                            databaseNode.Items.Add(collectionsNode);
                            databasesNode.Items.Add(databaseNode);
                            collectionsNode.IsExpanded = false;
                            databaseNode.IsExpanded = true;
                        }
                        descriptionNode.Items.Add(databasesNode);
                        descriptionsNode.Items.Add(descriptionNode);
                        descriptionNode.IsExpanded = true;
                        databasesNode.IsExpanded = true;
                    }
                    serverNode.Items.Add(descriptionsNode);
                    rootNode.Items.Add(serverNode);
                    descriptionsNode.IsExpanded = true;
                    serverNode.IsExpanded = true;
                }
                rootNode.IsExpanded = true;
                ObjectTree.Items.Add(rootNode);
            }
        }