public static void CreateListItems(List <MetadataNode> Nodes, MetadataIcon[] TypeIcons, Dictionary <string, string> Descriptions, bool bMetaPrefix, List <MetadataListItem> ListItems) { foreach (MetadataNode Node in Nodes) { string TagName = Node.TagText; if (String.Compare(TagName, "Meta", true) == 0 && Node.ListValue != null) { CreateListItems(Node.ListValue, APIDocTool.Icons.MetaMetadataIcons, MetadataLookup.MetaTags, true, ListItems); } else { // Get the list name string ListName = bMetaPrefix ? ("Meta=(" + TagName + ")") : TagName; // Find or create a list item MetadataListItem ListItem = ListItems.FirstOrDefault(x => x.Name == ListName); if (ListItem == null) { ListItem = new MetadataListItem(); ListItem.Icon = APIDocTool.Icons.GetMetadataIcon(TypeIcons, Node.TagText); ListItem.Name = ListName; Descriptions.TryGetValue(Node.TagText, out ListItem.Description); ListItems.Add(ListItem); } // Add all the values if (Node.TokenValue.HasValue) { ListItem.Values.Add(MetadataLookup.GetReferenceName(Node.TokenValue.ToString())); } if (Node.ListValue != null) { ListItem.Values.AddRange(Node.ListValue.Select(x => x.ToString())); } } } }
public static void CreateListItems(List<MetadataNode> Nodes, MetadataIcon[] TypeIcons, Dictionary<string, string> Descriptions, bool bMetaPrefix, List<MetadataListItem> ListItems) { foreach (MetadataNode Node in Nodes) { string TagName = Node.TagText; if (String.Compare(TagName, "Meta", true) == 0 && Node.ListValue != null) { CreateListItems(Node.ListValue, APIDocTool.Icons.MetaMetadataIcons, MetadataLookup.MetaTags, true, ListItems); } else { // Get the list name string ListName = bMetaPrefix ? ("Meta=(" + TagName + ")") : TagName; // Find or create a list item MetadataListItem ListItem = ListItems.FirstOrDefault(x => x.Name == ListName); if (ListItem == null) { ListItem = new MetadataListItem(); ListItem.Icon = APIDocTool.Icons.GetMetadataIcon(TypeIcons, Node.TagText); ListItem.Name = ListName; Descriptions.TryGetValue(Node.TagText, out ListItem.Description); ListItems.Add(ListItem); } // Add all the values if(Node.TokenValue.HasValue) { ListItem.Values.Add(MetadataLookup.GetReferenceName(Node.TokenValue.ToString())); } if(Node.ListValue != null) { ListItem.Values.AddRange(Node.ListValue.Select(x => x.ToString())); } } } }