private static void WriteIndex(OpenApiDocument graphOpenApi, Stream stream) { var sw = new StreamWriter(stream); var indexSearch = new OpenApiOperationIndex(); var walker = new OpenApiWalker(indexSearch); walker.Walk(graphOpenApi); sw.AutoFlush = true; sw.WriteLine("<h1># OpenAPI Operations for Microsoft Graph</h1>"); sw.WriteLine("<b/>"); sw.WriteLine("<ul>"); foreach (var item in indexSearch.Index) { sw.WriteLine("<li><a href='./$openapi?tags=" + item.Key.Name + "'>" + item.Key.Name + "</a></li>"); sw.WriteLine("<ul>"); foreach (var op in item.Value) { sw.WriteLine("<li><a href='./$openapi?operationIds=" + op.OperationId + "'>" + op.OperationId + "</a></li>"); } sw.WriteLine("</ul>"); } sw.WriteLine("</ul>"); }
private void WriteIndex(string baseUrl, string graphVersion, OpenApiDocument graphOpenApi, Stream stream) { var sw = new StreamWriter(stream); var indexSearch = new OpenApiOperationIndex(); var walker = new OpenApiWalker(indexSearch); walker.Walk(graphOpenApi); sw.AutoFlush = true; sw.WriteLine("<head>"); sw.WriteLine("<link rel='stylesheet' href='./stylesheet.css' />"); sw.WriteLine("</head>"); sw.WriteLine("<h1># OpenAPI Operations for Microsoft Graph</h1>"); sw.WriteLine("<b/>"); sw.WriteLine("<ul>"); foreach (var item in indexSearch.Index) { var target = $"{baseUrl}/openapi?tags={item.Key.Name}&openApiVersion=3&graphVersion={graphVersion}"; sw.WriteLine($"<li>{item.Key.Name} [<a href='../../openapi?tags={target}'>OpenApi</a>] [<a href='/swagger/index.html#url={target}'>Swagger UI</a>]</li>"); sw.WriteLine("<ul>"); foreach (var op in item.Value) { sw.WriteLine($"<li>{op.OperationId} [<a href='../../openapi?operationIds={op.OperationId}'>OpenAPI</a>]</li>"); } sw.WriteLine("</ul>"); } sw.WriteLine("</ul>"); sw.Dispose(); }
private async Task WriteIndex(string baseUrl, string graphVersion, string openApiVersion, string format, OpenApiDocument graphOpenApi, Stream stream, OpenApiStyle style) { using var sw = new StreamWriter(stream); var indexSearch = new OpenApiOperationIndex(); var walker = new OpenApiWalker(indexSearch); walker.Walk(graphOpenApi); await sw.WriteAsync("<head>" + Environment.NewLine + "<link rel='stylesheet' href='./stylesheet.css' />" + Environment.NewLine + "</head>" + Environment.NewLine + "<h1># OpenAPI Operations for Microsoft Graph</h1>" + Environment.NewLine + "<b/>" + Environment.NewLine + "<ul>" + Environment.NewLine); foreach (var item in indexSearch.Index) { var target = $"{baseUrl}/openapi?tags={item.Key.Name}&openApiVersion={openApiVersion}&graphVersion={graphVersion}&format={format}&style={style}"; await sw.WriteAsync($"<li>{item.Key.Name} [<a href='{target}'>OpenApi</a>] [<a href='/swagger/index.html#url={target}'>Swagger UI</a>]</li>{Environment.NewLine}<ul>{Environment.NewLine}"); foreach (var op in item.Value) { await sw.WriteLineAsync($"<li>{op.OperationId} [<a href='../../openapi?operationIds={op.OperationId}&openApiVersion={openApiVersion}&graphVersion={graphVersion}" + $"&format={format}&style={style}'>OpenAPI</a>]</li>"); } await sw.WriteLineAsync("</ul>"); } await sw.WriteLineAsync("</ul>"); await sw.FlushAsync(); }