diff --git a/src/Web/Startup.cs b/src/Web/Startup.cs index 742a926..5b57d17 100644 --- a/src/Web/Startup.cs +++ b/src/Web/Startup.cs @@ -1,4 +1,5 @@ -using Microsoft.AspNetCore.Builder; +using Ardalis.ListStartupServices; +using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; @@ -23,9 +24,9 @@ using Microsoft.Extensions.Diagnostics.HealthChecks; using Newtonsoft.Json; using Swashbuckle.AspNetCore.Swagger; using System; +using System.Collections.Generic; using System.Linq; using System.Net.Mime; -using System.Text; namespace Microsoft.eShopWeb.Web { @@ -133,6 +134,13 @@ namespace Microsoft.eShopWeb.Web .AddCheck("home_page_health_check") .AddCheck("api_health_check"); + services.Configure(config => + { + config.Services = new List(services); + + config.Path = "/allservices"; + }); + _services = services; // used to debug registered services } @@ -200,7 +208,7 @@ namespace Microsoft.eShopWeb.Web if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); - ListAllRegisteredServices(app, linkGenerator); + app.UseShowAllServicesMiddleware(); app.UseDatabaseErrorPage(); } else @@ -237,36 +245,5 @@ namespace Microsoft.eShopWeb.Web template: "{controller:slugify=Home}/{action:slugify=Index}/{id?}"); }); } - - private void ListAllRegisteredServices(IApplicationBuilder app, LinkGenerator linkGenerator) - { - var homePageLink = linkGenerator.GetPathByAction("Index", "Catalog"); - var loginLink = linkGenerator.GetPathByAction("SignIn", "Account"); - app.Map("/allservices", builder => builder.Run(async context => - { - var sb = new StringBuilder(); - sb.Append("Return to site | "); - sb.Append("Login to site"); - sb.Append("

All Services

"); - sb.Append(""); - sb.Append(""); - sb.Append(""); - foreach (var svc in _services) - { - sb.Append(""); - sb.Append($""); - sb.Append($""); - sb.Append($""); - sb.Append(""); - } - sb.Append("
TypeLifetimeInstance
{svc.ServiceType.FullName}{svc.Lifetime}{svc.ImplementationType?.FullName}
"); - await context.Response.WriteAsync(sb.ToString()); - })); - } - } } diff --git a/src/Web/Web.csproj b/src/Web/Web.csproj index 0b31d11..edb0d0e 100644 --- a/src/Web/Web.csproj +++ b/src/Web/Web.csproj @@ -13,6 +13,7 @@ +