private static TOCNodeYamlModel GenerateTocItemForType(Models.Type t) { var tToc = new TOCNodeYamlModel() { Uid = t.Uid, Name = t.Name, Items = GenerateTocItemsForMembers(t) }; if (IsNeedAddMonikers(t.Parent.Monikers, t.Monikers)) { tToc.Monikers = t.Monikers.ToArray(); } return(tToc); }
private static TOCNodeYamlModel GenerateTocItemForNamespace(Namespace ns) { var nsToc = new TOCNodeYamlModel() { Uid = string.IsNullOrEmpty(ns.Uid) ? null : ns.Uid, Name = string.IsNullOrEmpty(ns.Name) ? "global" : ns.Name, Items = new List <TOCNodeYamlModel>(ns.Types.Select(t => GenerateTocItemForType(t)).ToList()) }; if (ns.Monikers?.Count > 0) { nsToc.Monikers = ns.Monikers.ToArray(); } return(nsToc); }
private static List <TOCNodeYamlModel> GenerateTocItemsForMembers(Models.Type t) { if (t.Members == null || t.Members.Count == 0 || t.ItemType == ItemType.Enum) { return(null); } var items = new List <TOCNodeYamlModel>(); foreach (var olGroup in t.Members.Where(m => m.Overload != null).GroupBy(m => m.Overload)) { var ol = t.Overloads.FirstOrDefault(o => o.Uid == olGroup.Key); var tocEntry = new TOCNodeYamlModel() { Uid = ol.Uid, Name = ol.DisplayName }; tocEntry.Type = ol.ItemType.ToString(); if ((ol.ItemType == ItemType.Method || ol.ItemType == ItemType.Property) && olGroup.First().IsEII) { tocEntry.IsEII = true; } if (IsNeedAddMonikers(t.Monikers, ol.Monikers)) { tocEntry.Monikers = ol.Monikers.ToArray(); } items.Add(tocEntry); } foreach (var m in t.Members.Where(m => m.Overload == null)) { var tocEntry = new TOCNodeYamlModel() { Uid = m.Uid, Name = m.DisplayName }; tocEntry.Type = m.ItemType.ToString(); if (IsNeedAddMonikers(t.Monikers, m.Monikers)) { tocEntry.Monikers = m.Monikers.ToArray(); } items.Add(tocEntry); } return(items); }