public MarkdownType BuildType(MarkdownType type, MarkdownNamespace namespaceItem, IEnumerable <XmlDocumentComment> comments)
        {
            Constants.Logger?.LogTrace("Building Markdown Item for Type {typeName}", type.Name);
            MarkdownRepo.TryAdd(type);

            type.NamespaceItem = namespaceItem;

            type.Summary = comments.FirstOrDefault(x => x.MemberName == type.Name ||
                                                   x.MemberName.StartsWith(type.Name))?.Summary ?? "";

            Constants.Logger?.LogTrace("Getting Markdown Fields for Type {typeName}", type.Name);
            BuildFields(type, comments, type.GetFields().Together(type.GetStaticFields()).ToArray());

            Constants.Logger?.LogTrace("Getting Markdown Properties for Type {typeName}", type.Name);
            BuildProperties(type, comments, type.GetProperties().Together(type.GetStaticProperties()).ToArray());

            Constants.Logger?.LogTrace("Getting Markdown Methods for Type {typeName}", type.Name);
            BuildMethods(type, comments, type.GetMethods().Together(type.GetStaticMethods()).ToArray());

            Constants.Logger?.LogTrace("Getting Markdown Events for Type {typeName}", type.Name);
            BuildEvents(type, comments, type.GetEvents().Together(type.GetStaticEvents()).ToArray());

            Constants.Logger?.LogTrace("Getting Markdown Constructors for Type {typeName}", type.Name);
            BuildConstructors(type, comments, type.GetConstructors().Together(type.GetStaticConstructors()).ToArray());

            Constants.Logger?.LogTrace("Completed Building Markdown Type {typeName}", type.Name);
            return(type);
        }