< Summary

Line coverage
100%
Covered lines: 42
Uncovered lines: 0
Coverable lines: 42
Total lines: 65
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
<Main>$(...)100%11100%

File(s)

/home/runner/work/NetCoreApplicationTemplate/NetCoreApplicationTemplate/src/ProjectTemplate.Web/Program.cs

#LineLine coverage
 1using System.Diagnostics;
 2using System.Globalization;
 3using Microsoft.AspNetCore.Mvc;
 4using ProjectTemplate.Web.Authentication.Extensions;
 5using ProjectTemplate.Web.ErrorHandling;
 6using ProjectTemplate.Web.Extensions;
 7using Serilog;
 8
 1109Activity.DefaultIdFormat = ActivityIdFormat.W3C;
 11010Activity.ForceDefaultIdFormat = true;
 11
 11012Log.Logger = new LoggerConfiguration()
 11013    .Enrich.FromLogContext()
 11014    .WriteTo.Debug(
 11015        outputTemplate: "[{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} {Level:u3}] [{SourceContext}] [CorrelationId: {Correla
 11016        formatProvider: CultureInfo.InvariantCulture)
 11017    .WriteTo.Console(
 11018        outputTemplate: "[{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} {Level:u3}] [{SourceContext}] [CorrelationId: {Correla
 11019        formatProvider: CultureInfo.InvariantCulture)
 11020    .CreateBootstrapLogger();
 21
 22try
 23{
 11024    WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
 25
 11026    builder.AddApplicationSerilog();
 11027    Log.Information("Bootstrapping ProjectTemplate.Web application");
 28    // Validate antiforgery tokens on every unsafe (POST, PUT, PATCH, DELETE) MVC request by default, so consumer
 29    // actions are protected without opting in. Use [IgnoreAntiforgeryToken] only for endpoints that do not rely
 30    // on ambient (cookie) credentials.
 11031    builder.Services.AddControllersWithViews(options => options.Filters.Add(new AutoValidateAntiforgeryTokenAttribute())
 11032    builder.Services.AddApplicationApiVersioning(builder.Configuration);
 11033    builder.Services.AddRazorPages();
 11034    builder.Services.AddApplicationHealthChecks();
 11035    builder.Services.AddApplicationForwardedHeaders(builder.Configuration);
 11036    builder.Services.AddApplicationSecurityHeaders(builder.Configuration);
 11037    builder.Services.AddApplicationRateLimiting(builder.Configuration, builder.Environment);
 11038    builder.Services.AddApplicationRequestLogging(builder.Configuration);
 11039    builder.Services.AddApplicationOpenTelemetry(builder.Configuration, builder.Environment);
 11040    builder.Services.AddApplicationProblemDetails(builder.Environment);
 11041    builder.Services.AddApplicationDataProtection(builder.Configuration, builder.Environment);
 11042    builder.Services.AddApplicationAuthentication(builder.Configuration, builder.Environment);
 11043    builder.Services.AddApplicationAuthorization(builder.Configuration);
 11044    builder.Services.AddApplicationDataAccess(builder.Configuration);
 45
 11046    Log.Information("Starting ProjectTemplate.Web application");
 11047    WebApplication app = builder.Build();
 48
 11049    Log.Information("Configuring pipeline for ProjectTemplate.Web application");
 11050    app.UseApplicationPipeline();
 9851    app.MapApplicationHealthChecks();
 9852    app.LogApplicationSecurityPosture();
 53
 9854    Log.Information("Running ProjectTemplate.Web application");
 9855    app.Run();
 9856}
 1257catch (Exception ex)
 58{
 1259    Log.Fatal(ex, "ProjectTemplate.Web application terminated unexpectedly");
 1260    throw;
 61}
 62finally
 63{
 11064    Log.CloseAndFlush();
 11065}

Methods/Properties

<Main>$(System.String[])