public void Configure( IApplicationBuilder app, IWebHostEnvironment env, IUnitOfWork unitOfWork, AppDbContext dbContext, StatusReporter statusReporter) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseCors("localhost"); } app.UseMiddleware <TraceLoggingMiddleware>(); app.UseSerilogRequestLogging(); dbContext.Database.Migrate(); CreateAdminUser(unitOfWork); app.UseSwagger(options => { options.RouteTemplate = "docs/{documentName}/docs.json"; }); app.UseSwaggerUI(options => { options.RoutePrefix = "docs"; options.SwaggerEndpoint("/docs/v1/docs.json", "GTO API v1"); }); app.UseRouting(); app.UseHttpMetrics(); app.UseAuthentication(); app.UseAuthorization(); app.UseMiddleware <UnitOfWorkMiddleware>(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); endpoints.MapMetrics(); }); statusReporter.SetReady(); }