< Summary

Line coverage
92%
Covered lines: 39
Uncovered lines: 3
Coverable lines: 42
Total lines: 78
Line coverage: 92.8%
Branch coverage
62%
Covered branches: 5
Total branches: 8
Branch coverage: 62.5%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
<Main>$()62.5%8892.85%

File(s)

/home/runner/work/CleanArchitectureTemplate/CleanArchitectureTemplate/src/Api/Program.cs

#LineLine coverage
 1using Api;
 2using Api.Middleware;
 3using Api.ServiceExtension;
 4using Application;
 5using Domain;
 6using HealthChecks.UI.Client;
 7using Infrastructure;
 8using Microsoft.AspNetCore.Diagnostics.HealthChecks;
 9using Microsoft.AspNetCore.Hosting;
 10using Microsoft.AspNetCore.ResponseCompression;
 11using Serilog;
 12
 113var builder = WebApplication.CreateBuilder(args);
 14
 15#region logging
 116Log.Logger = new LoggerConfiguration()
 117    .ReadFrom.Configuration(builder.Configuration)
 118    .Enrich.FromLogContext()
 119    .CreateLogger();
 20
 121builder.Host.UseSerilog();
 22#endregion logging
 23
 124builder.Services.AddDefaultProblemDetails();
 125builder.Services.AddDefaultApiVersioning();
 126builder.Services.AddDefaultResponseCompression();
 127builder.Services.AddDefaultSwaggerGeneration();
 28
 129builder.Services.AddDomain();
 130builder.Services.AddInfrastructure();
 131builder.Services.AddApplication();
 32
 133builder.Services.AddControllers();
 134builder.Services.AddEndpointsApiExplorer();
 135builder.Services.AddSwaggerGen();
 36
 137builder.Services.AddMemoryCache();
 38
 139builder.Services.AddHttpContextAccessor();
 40
 141builder.Services.AddSingleton<Banner>();
 142var app = builder.Build();
 143app.UseHttpsRedirection();
 44
 145app.UseAuthorization();
 46
 147app.MapControllers();
 48
 149app.UseResponseCompression();
 50
 251if (app.Environment.IsDevelopment() || app.Environment.IsProduction()) {
 152  app.UseSwagger();
 253  app.UseSwaggerUI(options => {
 154    options.SwaggerEndpoint("../swagger/v1/swagger.json", "Cleanarchitecture Template API V1");
 155    options.DefaultModelRendering(Swashbuckle.AspNetCore.SwaggerUI.ModelRendering.Model);
 156    options.ConfigObject.AdditionalItems["syntaxHighlight"] = false;
 257  });
 158}
 59
 260if (app.Environment.IsDevelopment() || app.Environment.IsStaging()) {
 161  app.UseDeveloperExceptionPage();
 162}
 063else {
 064  app.UseExceptionHandler();
 065}
 66
 67
 68//app.MapHealthChecks(
 69//  "_health",
 70//  new HealthCheckOptions() {
 71//    ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse
 72//  });
 73
 274using (var banner = app.Services.GetRequiredService<Banner>()) {
 175  banner.LogBanner();
 176}
 77
 178await app.RunAsync();

Methods/Properties

<Main>$()