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); } }
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); } }