diff --git a/DysonNetwork.Drive/AppDatabase.cs b/DysonNetwork.Drive/AppDatabase.cs index 6e4983e..e8b20bb 100644 --- a/DysonNetwork.Drive/AppDatabase.cs +++ b/DysonNetwork.Drive/AppDatabase.cs @@ -27,7 +27,6 @@ public class AppDatabase( public DbSet FileIndexes { get; set; } public DbSet Tasks { get; set; } = null!; - public DbSet UploadTasks { get; set; } = null!; // Backward compatibility protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { @@ -42,18 +41,6 @@ public class AppDatabase( base.OnConfiguring(optionsBuilder); } - public static void ConfigureOptions(IServiceProvider serviceProvider, DbContextOptionsBuilder optionsBuilder) - { - var configuration = serviceProvider.GetRequiredService(); - optionsBuilder.UseNpgsql( - configuration.GetConnectionString("App"), - opt => opt - .ConfigureDataSource(optSource => optSource.EnableDynamicJson()) - .UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery) - .UseNodaTime() - ).UseSnakeCaseNamingConvention(); - } - protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); diff --git a/DysonNetwork.Drive/Startup/ServiceCollectionExtensions.cs b/DysonNetwork.Drive/Startup/ServiceCollectionExtensions.cs index 95d6295..ce5ead3 100644 --- a/DysonNetwork.Drive/Startup/ServiceCollectionExtensions.cs +++ b/DysonNetwork.Drive/Startup/ServiceCollectionExtensions.cs @@ -9,58 +9,61 @@ namespace DysonNetwork.Drive.Startup; public static class ServiceCollectionExtensions { - public static IServiceCollection AddAppServices(this IServiceCollection services, IConfiguration configuration) + extension(IServiceCollection services) { - services.AddDbContextPool(AppDatabase.ConfigureOptions); - services.AddHttpContextAccessor(); - - services.AddHttpClient(); - - // Register gRPC services - services.AddGrpc(options => + public IServiceCollection AddAppServices(IConfiguration configuration) { - options.EnableDetailedErrors = true; // Will be adjusted in Program.cs - options.MaxReceiveMessageSize = 16 * 1024 * 1024; // 16MB - options.MaxSendMessageSize = 16 * 1024 * 1024; // 16MB - }); - services.AddGrpcReflection(); + services.AddDbContext(); + services.AddHttpContextAccessor(); - services.AddControllers().AddJsonOptions(options => + services.AddHttpClient(); + + // Register gRPC services + services.AddGrpc(options => + { + options.EnableDetailedErrors = true; // Will be adjusted in Program.cs + options.MaxReceiveMessageSize = 16 * 1024 * 1024; // 16MB + options.MaxSendMessageSize = 16 * 1024 * 1024; // 16MB + }); + services.AddGrpcReflection(); + + services.AddControllers().AddJsonOptions(options => + { + options.JsonSerializerOptions.NumberHandling = JsonNumberHandling.AllowNamedFloatingPointLiterals; + options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseLower; + options.JsonSerializerOptions.DictionaryKeyPolicy = JsonNamingPolicy.SnakeCaseLower; + + options.JsonSerializerOptions.ConfigureForNodaTime(DateTimeZoneProviders.Tzdb); + }); + + return services; + } + + public IServiceCollection AddAppAuthentication() { - options.JsonSerializerOptions.NumberHandling = JsonNumberHandling.AllowNamedFloatingPointLiterals; - options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseLower; - options.JsonSerializerOptions.DictionaryKeyPolicy = JsonNamingPolicy.SnakeCaseLower; + services.AddAuthorization(); + return services; + } - options.JsonSerializerOptions.ConfigureForNodaTime(DateTimeZoneProviders.Tzdb); - }); + public IServiceCollection AddAppFlushHandlers() + { + services.AddSingleton(); - return services; - } + return services; + } - public static IServiceCollection AddAppAuthentication(this IServiceCollection services) - { - services.AddAuthorization(); - return services; - } + public IServiceCollection AddAppBusinessServices() + { + services.AddScoped(); + services.AddScoped(); + services.AddScoped(); + services.AddScoped(); + services.AddScoped(); + services.AddScoped(); - public static IServiceCollection AddAppFlushHandlers(this IServiceCollection services) - { - services.AddSingleton(); + services.AddHostedService(); - return services; - } - - public static IServiceCollection AddAppBusinessServices(this IServiceCollection services) - { - services.AddScoped(); - services.AddScoped(); - services.AddScoped(); - services.AddScoped(); - services.AddScoped(); - services.AddScoped(); - - services.AddHostedService(); - - return services; + return services; + } } }