internal SchemaFilterEntryBag CreateSchemaFilterEntryBag() { var schemaFilterEntryBag = new SchemaFilterEntryBag(); foreach (var treeView in _treeViews) { TreeViewSchemaFilterMapperSettings settings; _treeView2Settings.TryGetValue(treeView, out settings); foreach (TreeNode parentNode in treeView.Nodes) { foreach (TreeNode schemaNode in parentNode.Nodes) { foreach (TreeNode child in schemaNode.Nodes) { UpdateSchemaFilterEntryBagFromLeafNode(child, schemaFilterEntryBag, settings); } } } } return schemaFilterEntryBag; }
private static void UpdateSchemaFilterEntryBagFromLeafNode( TreeNode leafNode, SchemaFilterEntryBag schemaFilterEntryBag, TreeViewSchemaFilterMapperSettings settings) { Debug.Assert( settings != null, "We should not be passing null settings into this method; they should at least be the default settings"); if (settings == null) { return; } var e = leafNode.Tag as EntityStoreSchemaFilterEntry; Debug.Assert( e != null, "Either the Tag property of the leaf node is null or the leaf node is not an EntityStoreSchemaFilterEntry"); if (e != null) { switch (e.Types) { case EntityStoreSchemaFilterObjectTypes.Table: if (false == settings.UseOnlyCheckedNodes || leafNode.Checked) { schemaFilterEntryBag.IncludedTableEntries.Add(e); } else { schemaFilterEntryBag.ExcludedTableEntries.Add( new EntityStoreSchemaFilterEntry( e.Catalog, e.Schema, e.Name, e.Types, EntityStoreSchemaFilterEffect.Exclude)); } break; case EntityStoreSchemaFilterObjectTypes.View: if (false == settings.UseOnlyCheckedNodes || leafNode.Checked) { schemaFilterEntryBag.IncludedViewEntries.Add(e); } else { schemaFilterEntryBag.ExcludedViewEntries.Add( new EntityStoreSchemaFilterEntry( e.Catalog, e.Schema, e.Name, e.Types, EntityStoreSchemaFilterEffect.Exclude)); } break; case EntityStoreSchemaFilterObjectTypes.Function: if (false == settings.UseOnlyCheckedNodes || leafNode.Checked) { schemaFilterEntryBag.IncludedSprocEntries.Add(e); } else { schemaFilterEntryBag.ExcludedSprocEntries.Add( new EntityStoreSchemaFilterEntry( e.Catalog, e.Schema, e.Name, e.Types, EntityStoreSchemaFilterEffect.Exclude)); } break; default: Debug.Fail("Unexpected filter object type"); break; } } }