public async Task Invoke(HttpContext httpContext) { if (httpContext.Request.Path.Value == "/apimanager") { var buildDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); var filePath = buildDir + @"\BottomhalfMiddlewares\HeaderTemplate.html"; string PageData = File.ReadAllText(filePath); StringBuilder LinkTemplate = new StringBuilder(); StringBuilder FinalTemplate = new StringBuilder(); IAPIManagerd <APIManager> aPIManagerd = new APIManager(); var APIs = aPIManagerd.GetAPIs(); string Template = null; int Index = 0; foreach (var APIByMethod in APIs) { LinkTemplate = new StringBuilder(); Template = MethodDivider.Replace("[[METHOD-NAME]]", APIByMethod.Key); Index = 0; foreach (var Data in APIByMethod.Value) { if (Data.MethodName.ToLower() == "post") { LinkTemplate.Append(APITemplate.Replace("[[METHOD-NAME]]", Data.MethodName) .Replace("[[COLORED-CLASS]]", Colors[Index % 4]) .Replace("{{API-VALUE}}", Data.URL) .Replace("{{API-VALUE}}", Data.URL)) .Replace("[[REQUEST-PARAMETERS]]", PostingParameterJson(Data.Parameters)); } else if (Data.MethodName.ToLower() == "get") { LinkTemplate.Append(APITemplate.Replace("[[METHOD-NAME]]", Data.MethodName) .Replace("[[COLORED-CLASS]]", Colors[Index % 4]) .Replace("{{API-VALUE}}", Data.URL) .Replace("{{API-VALUE}}", Data.URL)) .Replace("[[REQUEST-PARAMETERS]]", $"<div class='get-box'>{QueryStringParameterJson(Data.Parameters)}</div>"); } Index++; } FinalTemplate.Append(Template.Replace("[[LINK-SECTION]]", LinkTemplate.ToString())); } await httpContext.Response.WriteAsync(PageData.Replace("[[LINK-DATA]]", FinalTemplate.ToString()) .Replace("[[Data]]", JsonConvert.SerializeObject(APIs, new JsonSerializerSettings { Formatting = Formatting.Indented, }))); } else { diQueue.InitScopeQueue(httpContext.TraceIdentifier); await _next(httpContext); diQueue.RemoveScoped(httpContext.TraceIdentifier); } }