mirror of
https://github.com/collinbarrett/FilterLists.git
synced 2026-03-11 09:04:27 +00:00
refactor(svcs): ♻ migrate to new hosting model
This commit is contained in:
parent
3efd74b0df
commit
5775cc3274
11 changed files with 57 additions and 118 deletions
|
|
@ -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<RouteOptions>(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<Startup>());
|
||||
}
|
||||
}
|
||||
var app = builder.Build();
|
||||
|
||||
app.UseApplication();
|
||||
app.UseExceptionHandler(app.Environment.IsDevelopment() ? "/error-local-development" : "/error");
|
||||
app.UseSwagger();
|
||||
app.MapControllers();
|
||||
|
||||
await app.TryRunWithLoggingAsync();
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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<GitOptions>(configuration.GetSection(GitOptions.Key));
|
||||
services.AddTransient<IRepository, Repository>(_ =>
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -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<RouteOptions>(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<Startup>());
|
||||
}
|
||||
}
|
||||
var app = builder.Build();
|
||||
|
||||
app.UseApplication();
|
||||
app.UseExceptionHandler(app.Environment.IsDevelopment() ? "/error-local-development" : "/error");
|
||||
app.UseSwagger();
|
||||
app.MapControllers();
|
||||
|
||||
await app.TryRunWithLoggingAsync(() => app.MigrateAsync());
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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<QueryDbContext>(o =>
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue