refactored program.cs to have more of a fluent like syntax

This commit is contained in:
StevanFreeborn
2022-06-24 14:03:43 -05:00
parent 5185323d7b
commit 4035b6e919
3 changed files with 19 additions and 14 deletions
+7 -10
View File
@@ -27,17 +27,14 @@ if (args.Length == 2 && args[0].ToLower() == "seed")
} }
else else
{ {
var builder = WebApplication.CreateBuilder(args); var app = WebApplication
.CreateBuilder(args)
.SetupDb()
.SetupMvC()
.SetupSwagger()
.Build();
Services.SetupDb(builder); app.SetupMiddleware().Run();
Services.SetupMvC(builder);
Services.SetupSwagger(builder);
var app = builder.Build();
Middleware.Setup(app);
app.Run();
} }
+3 -1
View File
@@ -5,7 +5,7 @@ namespace server.Setup
{ {
public static class Middleware public static class Middleware
{ {
public static void Setup(WebApplication app) public static WebApplication SetupMiddleware(this WebApplication app)
{ {
app.UseSwagger(options => app.UseSwagger(options =>
{ {
@@ -36,6 +36,8 @@ namespace server.Setup
app.MapControllers(); app.MapControllers();
app.UseIpRateLimiting(); app.UseIpRateLimiting();
return app;
} }
} }
} }
+9 -3
View File
@@ -12,7 +12,7 @@ namespace server.Setup
{ {
public static class Services public static class Services
{ {
public static void SetupDb(WebApplicationBuilder builder) public static WebApplicationBuilder SetupDb(this WebApplicationBuilder builder)
{ {
builder.Services.Configure<DatabaseSettings>( builder.Services.Configure<DatabaseSettings>(
builder.Configuration.GetSection("MongoDBSettings")); builder.Configuration.GetSection("MongoDBSettings"));
@@ -29,9 +29,11 @@ namespace server.Setup
builder.Services.AddScoped<IQuoteRepository, QuoteRepository>(); builder.Services.AddScoped<IQuoteRepository, QuoteRepository>();
builder.Services.AddScoped<ICharacterRepository, CharacterRepository>(); builder.Services.AddScoped<ICharacterRepository, CharacterRepository>();
return builder;
} }
public static void SetupMvC(WebApplicationBuilder builder) public static WebApplicationBuilder SetupMvC(this WebApplicationBuilder builder)
{ {
builder.Services.AddMemoryCache(); builder.Services.AddMemoryCache();
@@ -61,9 +63,11 @@ namespace server.Setup
{ {
config.GroupNameFormat = "'v'VVV"; config.GroupNameFormat = "'v'VVV";
}); });
return builder;
} }
public static void SetupSwagger(WebApplicationBuilder builder) public static WebApplicationBuilder SetupSwagger(this WebApplicationBuilder builder)
{ {
builder.Services.AddSwaggerGen(options => builder.Services.AddSwaggerGen(options =>
{ {
@@ -75,6 +79,8 @@ namespace server.Setup
}); });
builder.Services.ConfigureOptions<ConfigureSwaggerOptions>(); builder.Services.ConfigureOptions<ConfigureSwaggerOptions>();
return builder;
} }
} }
} }