From 5775cc32744080cafc64f0ab6195f06d38ebf4d1 Mon Sep 17 00:00:00 2001 From: "Collin M. Barrett" Date: Fri, 12 Nov 2021 15:15:58 -0600 Subject: [PATCH] =?UTF-8?q?refactor(svcs):=20=E2=99=BB=20migrate=20to=20ne?= =?UTF-8?q?w=20hosting=20model?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FilterLists.Archival.Api/Program.cs | 35 +++++++++--------- .../FilterLists.Archival.Api/Startup.cs | 32 ---------------- .../ConfigurationExtensions.cs | 8 ++-- .../ConfigurationExtensions.cs | 10 ++--- .../Persistence/ConfigurationExtensions.cs | 2 +- .../Scheduling/ConfigurationExtensions.cs | 2 +- .../FilterLists.Directory.Api/Program.cs | 37 ++++++++++--------- .../FilterLists.Directory.Api/Startup.cs | 33 ----------------- .../ConfigurationExtensions.cs | 8 ++-- .../ConfigurationExtensions.cs | 6 +-- .../ConfigurationExtensions.cs | 2 +- 11 files changed, 57 insertions(+), 118 deletions(-) delete mode 100644 services/Archival/FilterLists.Archival.Api/Startup.cs delete mode 100644 services/Directory/FilterLists.Directory.Api/Startup.cs diff --git a/services/Archival/FilterLists.Archival.Api/Program.cs b/services/Archival/FilterLists.Archival.Api/Program.cs index 0fd0ec8f6..abb2aace6 100644 --- a/services/Archival/FilterLists.Archival.Api/Program.cs +++ b/services/Archival/FilterLists.Archival.Api/Program.cs @@ -1,21 +1,22 @@ -using FilterLists.Archival.Application; +using System.Text.Json.Serialization; +using FilterLists.Archival.Application; using FilterLists.SharedKernel.Logging; -namespace FilterLists.Archival.Api; +var builder = WebApplication.CreateBuilder(args); -public static class Program -{ - // TODO: migrate to new hosting model https://docs.microsoft.com/en-us/aspnet/core/migration/50-to-60?view=aspnetcore-6.0&tabs=visual-studio#new-hosting-model - public static Task Main(string[] args) - { - var host = CreateHostBuilder(args).Build(); - return host.TryRunWithLoggingAsync(); - } +builder.Host.ConfigureApplication(); +builder.Services.Configure(options => options.LowercaseUrls = true); +builder.Services.AddControllers() + .AddJsonOptions(o => o.JsonSerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull); +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(); +builder.Services.AddApplication(builder.Configuration); - public static IHostBuilder CreateHostBuilder(string[] args) - { - return Host.CreateDefaultBuilder(args) - .UseApplication() - .ConfigureWebHostDefaults(webBuilder => webBuilder.UseStartup()); - } -} +var app = builder.Build(); + +app.UseApplication(); +app.UseExceptionHandler(app.Environment.IsDevelopment() ? "/error-local-development" : "/error"); +app.UseSwagger(); +app.MapControllers(); + +await app.TryRunWithLoggingAsync(); diff --git a/services/Archival/FilterLists.Archival.Api/Startup.cs b/services/Archival/FilterLists.Archival.Api/Startup.cs deleted file mode 100644 index 73e32f850..000000000 --- a/services/Archival/FilterLists.Archival.Api/Startup.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System.Text.Json.Serialization; -using FilterLists.Archival.Application; - -namespace FilterLists.Archival.Api; - -internal class Startup -{ - public Startup(IConfiguration configuration) - { - Configuration = configuration; - } - - public IConfiguration Configuration { get; } - - public void ConfigureServices(IServiceCollection services) - { - services.AddRouting(o => o.LowercaseUrls = true); - services.AddControllers().AddJsonOptions(o => - o.JsonSerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull); - services.AddSwaggerGen(); - services.AddApplicationServices(Configuration); - } - - public static void Configure(IApplicationBuilder app, IWebHostEnvironment env) - { - app.UseApplication(); - app.UseExceptionHandler(env.IsDevelopment() ? "/error-local-development" : "/error"); - app.UseRouting(); - app.UseEndpoints(e => e.MapControllers()); - app.UseSwagger(); - } -} diff --git a/services/Archival/FilterLists.Archival.Application/ConfigurationExtensions.cs b/services/Archival/FilterLists.Archival.Application/ConfigurationExtensions.cs index 4b874ac65..18973e5c7 100644 --- a/services/Archival/FilterLists.Archival.Application/ConfigurationExtensions.cs +++ b/services/Archival/FilterLists.Archival.Application/ConfigurationExtensions.cs @@ -12,15 +12,15 @@ namespace FilterLists.Archival.Application; public static class ConfigurationExtensions { - public static IHostBuilder UseApplication(this IHostBuilder hostBuilder) + public static IHostBuilder ConfigureApplication(this IHostBuilder hostBuilder) { - return hostBuilder.UseInfrastructure(); + return hostBuilder.ConfigureInfrastructure(); } - public static void AddApplicationServices(this IServiceCollection services, IConfiguration configuration) + public static void AddApplication(this IServiceCollection services, IConfiguration configuration) { services.AddMediatR(typeof(ConfigurationExtensions).Assembly); - services.AddInfrastructureServices(configuration); + services.AddInfrastructure(configuration); } public static void UseApplication(this IApplicationBuilder app) diff --git a/services/Archival/FilterLists.Archival.Infrastructure/ConfigurationExtensions.cs b/services/Archival/FilterLists.Archival.Infrastructure/ConfigurationExtensions.cs index ef504f882..77aee76ae 100644 --- a/services/Archival/FilterLists.Archival.Infrastructure/ConfigurationExtensions.cs +++ b/services/Archival/FilterLists.Archival.Infrastructure/ConfigurationExtensions.cs @@ -12,18 +12,18 @@ namespace FilterLists.Archival.Infrastructure; public static class ConfigurationExtensions { - public static IHostBuilder UseInfrastructure(this IHostBuilder hostBuilder) + public static IHostBuilder ConfigureInfrastructure(this IHostBuilder hostBuilder) { - return hostBuilder.UseLogging(); + return hostBuilder.ConfigureLogging(); } - public static void AddInfrastructureServices(this IServiceCollection services, IConfiguration configuration) + public static void AddInfrastructure(this IServiceCollection services, IConfiguration configuration) { services.AddSharedKernelLogging(configuration); - services.AddSchedulingServices(configuration); + services.AddScheduling(configuration); services.AddDirectoryApiClient(configuration); services.AddClients(); - services.AddPersistenceServices(configuration); + services.AddPersistence(configuration); } public static void UseInfrastructure(this IApplicationBuilder app) diff --git a/services/Archival/FilterLists.Archival.Infrastructure/Persistence/ConfigurationExtensions.cs b/services/Archival/FilterLists.Archival.Infrastructure/Persistence/ConfigurationExtensions.cs index f270eee08..aa1e44fd4 100644 --- a/services/Archival/FilterLists.Archival.Infrastructure/Persistence/ConfigurationExtensions.cs +++ b/services/Archival/FilterLists.Archival.Infrastructure/Persistence/ConfigurationExtensions.cs @@ -8,7 +8,7 @@ namespace FilterLists.Archival.Infrastructure.Persistence; internal static class ConfigurationExtensions { - public static void AddPersistenceServices(this IServiceCollection services, IConfiguration configuration) + public static void AddPersistence(this IServiceCollection services, IConfiguration configuration) { services.Configure(configuration.GetSection(GitOptions.Key)); services.AddTransient(_ => diff --git a/services/Archival/FilterLists.Archival.Infrastructure/Scheduling/ConfigurationExtensions.cs b/services/Archival/FilterLists.Archival.Infrastructure/Scheduling/ConfigurationExtensions.cs index 40b5e14ea..06c0cc9fd 100644 --- a/services/Archival/FilterLists.Archival.Infrastructure/Scheduling/ConfigurationExtensions.cs +++ b/services/Archival/FilterLists.Archival.Infrastructure/Scheduling/ConfigurationExtensions.cs @@ -9,7 +9,7 @@ internal static class ConfigurationExtensions { private static ConnectionMultiplexer _redis = null!; - public static void AddSchedulingServices(this IServiceCollection services, IConfiguration configuration) + public static void AddScheduling(this IServiceCollection services, IConfiguration configuration) { _redis = ConnectionMultiplexer.Connect(configuration.GetConnectionString("SchedulingConnection")); services.AddHangfire((_, globalConfiguration) => globalConfiguration.UseRedisStorage(_redis).UseMediatR()); diff --git a/services/Directory/FilterLists.Directory.Api/Program.cs b/services/Directory/FilterLists.Directory.Api/Program.cs index b1ec9dae1..49a099233 100644 --- a/services/Directory/FilterLists.Directory.Api/Program.cs +++ b/services/Directory/FilterLists.Directory.Api/Program.cs @@ -1,22 +1,25 @@ -using FilterLists.Directory.Application; +using System.Text.Json.Serialization; +using FilterLists.Directory.Api; +using FilterLists.Directory.Application; using FilterLists.Directory.Infrastructure.Persistence; using FilterLists.SharedKernel.Logging; -namespace FilterLists.Directory.Api; +var builder = WebApplication.CreateBuilder(args); -public static class Program -{ - // TODO: migrate to new hosting model https://docs.microsoft.com/en-us/aspnet/core/migration/50-to-60?view=aspnetcore-6.0&tabs=visual-studio#new-hosting-model - public static Task Main(string[] args) - { - var host = CreateHostBuilder(args).Build(); - return host.TryRunWithLoggingAsync(() => host.MigrateAsync()); - } +builder.Host.ConfigureApplication(); +builder.Services.AddMemoryCache(); +builder.Services.Configure(options => options.LowercaseUrls = true); +builder.Services.AddControllers() + .AddJsonOptions(o => o.JsonSerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull); +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(); +builder.Services.AddApplication(builder.Configuration); - public static IHostBuilder CreateHostBuilder(string[] args) - { - return Host.CreateDefaultBuilder(args) - .UseApplication() - .ConfigureWebHostDefaults(webBuilder => webBuilder.UseStartup()); - } -} +var app = builder.Build(); + +app.UseApplication(); +app.UseExceptionHandler(app.Environment.IsDevelopment() ? "/error-local-development" : "/error"); +app.UseSwagger(); +app.MapControllers(); + +await app.TryRunWithLoggingAsync(() => app.MigrateAsync()); diff --git a/services/Directory/FilterLists.Directory.Api/Startup.cs b/services/Directory/FilterLists.Directory.Api/Startup.cs deleted file mode 100644 index 2b5001e2a..000000000 --- a/services/Directory/FilterLists.Directory.Api/Startup.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Text.Json.Serialization; -using FilterLists.Directory.Application; - -namespace FilterLists.Directory.Api; - -internal class Startup -{ - public Startup(IConfiguration configuration) - { - Configuration = configuration; - } - - public IConfiguration Configuration { get; } - - public void ConfigureServices(IServiceCollection services) - { - services.AddMemoryCache(); - services.AddRouting(o => o.LowercaseUrls = true); - services.AddControllers().AddJsonOptions(o => - o.JsonSerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull); - services.AddSwaggerGen(); - services.AddApplicationServices(Configuration); - } - - public static void Configure(IApplicationBuilder app, IWebHostEnvironment env) - { - app.UseApplication(); - app.UseExceptionHandler(env.IsDevelopment() ? "/error-local-development" : "/error"); - app.UseRouting(); - app.UseEndpoints(e => e.MapControllers()); - app.UseSwagger(); - } -} diff --git a/services/Directory/FilterLists.Directory.Application/ConfigurationExtensions.cs b/services/Directory/FilterLists.Directory.Application/ConfigurationExtensions.cs index a9fb4981e..73304f209 100644 --- a/services/Directory/FilterLists.Directory.Application/ConfigurationExtensions.cs +++ b/services/Directory/FilterLists.Directory.Application/ConfigurationExtensions.cs @@ -9,16 +9,16 @@ namespace FilterLists.Directory.Application; public static class ConfigurationExtensions { - public static IHostBuilder UseApplication(this IHostBuilder hostBuilder) + public static IHostBuilder ConfigureApplication(this IHostBuilder hostBuilder) { - return hostBuilder.UseInfrastructure(); + return hostBuilder.ConfigureInfrastructure(); } - public static void AddApplicationServices(this IServiceCollection services, IConfiguration configuration) + public static void AddApplication(this IServiceCollection services, IConfiguration configuration) { services.AddMediatR(typeof(ConfigurationExtensions).Assembly); services.AddAutoMapper(typeof(ConfigurationExtensions).Assembly); - services.AddInfrastructureServices(configuration); + services.AddInfrastructure(configuration); } public static void UseApplication(this IApplicationBuilder app) diff --git a/services/Directory/FilterLists.Directory.Infrastructure/ConfigurationExtensions.cs b/services/Directory/FilterLists.Directory.Infrastructure/ConfigurationExtensions.cs index 6dab5d008..cb3f09640 100644 --- a/services/Directory/FilterLists.Directory.Infrastructure/ConfigurationExtensions.cs +++ b/services/Directory/FilterLists.Directory.Infrastructure/ConfigurationExtensions.cs @@ -13,12 +13,12 @@ namespace FilterLists.Directory.Infrastructure; public static class ConfigurationExtensions { - public static IHostBuilder UseInfrastructure(this IHostBuilder hostBuilder) + public static IHostBuilder ConfigureInfrastructure(this IHostBuilder hostBuilder) { - return hostBuilder.UseLogging(); + return hostBuilder.ConfigureLogging(); } - public static void AddInfrastructureServices(this IServiceCollection services, IConfiguration configuration) + public static void AddInfrastructure(this IServiceCollection services, IConfiguration configuration) { services.AddSharedKernelLogging(configuration); services.AddDbContextPool(o => diff --git a/services/SharedKernel/FilterLists.SharedKernel.Logging/ConfigurationExtensions.cs b/services/SharedKernel/FilterLists.SharedKernel.Logging/ConfigurationExtensions.cs index 0a5b01b70..8f24af134 100644 --- a/services/SharedKernel/FilterLists.SharedKernel.Logging/ConfigurationExtensions.cs +++ b/services/SharedKernel/FilterLists.SharedKernel.Logging/ConfigurationExtensions.cs @@ -12,7 +12,7 @@ namespace FilterLists.SharedKernel.Logging; public static class ConfigurationExtensions { - public static IHostBuilder UseLogging(this IHostBuilder hostBuilder) + public static IHostBuilder ConfigureLogging(this IHostBuilder hostBuilder) { return hostBuilder.UseSerilog(); }