示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }