void BuildTable <T>(MarkdownBuilder mb, string label, T[] array, IEnumerable <XmlDocumentComment> docs, Func <T, string> getTypeNameFunc, Func <T, string> getFieldNameFunc, Func <T, string> getFinalNameFunc) { if (array.Any()) { mb.AppendLine("### " + label); mb.AppendLine(); string[] head = (this._type.IsEnum) ? new[] { "Value", "Name", "Description" } : new[] { "Type", "Name", "Description" }; // IEnumerable<T> seq = array; if (!this._type.IsEnum) { array = array.OrderBy(x => getFieldNameFunc(x)).ToArray(); } var data = array.Select(item2 => { var summary = docs.FirstOrDefault(x => x.MemberName == getFieldNameFunc(item2))?.Summary ?? ""; var typeName = ""; try { typeName = getTypeNameFunc(item2); } catch { typeName = "[Unknown type]"; } return(new[] { MarkdownBuilder.MarkdownCodeQuote(typeName), getFinalNameFunc(item2), summary }); }); mb.Table(head, data); mb.AppendLine(); } }
private string BuildContent(TypeScriptEnumeration @enum) { var mb = new MarkdownBuilder(); mb.AppendLine(@enum.Comment?.ShortText ?? ""); mb.AppendLine(); BuildExample(mb, @enum.Comment); mb.Header(3, "Enum"); var headers = new string[] { "Name", "Value", "Description" }; var data = @enum.Members.Select(m => new string[] { m.Name, MarkdownBuilder.MarkdownCodeQuote(m.DefaultValue), m.Comment?.ShortText ?? "" }); mb.Table(headers, data); return(mb.ToString()); }