FileDatabase refactor for normalization and consistency

This commit is contained in:
daniel-c-harvey
2025-09-04 16:26:10 -04:00
parent e82366e47f
commit 6fefcbcfb5
24 changed files with 3069 additions and 186 deletions
+17 -4
View File
@@ -1,18 +1,31 @@
using DeepDrftContent.FileDatabase.Models;
using DeepDrftContent.FileDatabase.Services;
using DeepDrftContent.Models;
namespace DeepDrftContent
{
public static class Startup
{
public static void ConfigureDomainServices(WebApplicationBuilder builder)
public static async Task ConfigureDomainServices(WebApplicationBuilder builder)
{
// File Database
builder.Configuration.AddJsonFile("environment/filedatabase.json", optional: false, reloadOnChange: true);
var fileDatabaseSettings = builder.Configuration.GetSection(nameof(FileDatabaseSettings)).Get<FileDatabaseSettings>();
if (fileDatabaseSettings is null) { throw new Exception("File database settings are not configured"); }
builder.Services.AddSingleton(
FileDatabase.Services.FileDatabase.FromAsync(
fileDatabaseSettings.VaultPath));
var fileDatabase = await FileDatabase.Services.FileDatabase.FromAsync(fileDatabaseSettings.VaultPath);
if (fileDatabase is null) { throw new Exception("Unable to initialize file database"); }
builder.Services.AddSingleton(fileDatabase);
await InitializeTrackVault(fileDatabase);
}
private static async Task InitializeTrackVault(FileDatabase.Services.FileDatabase fileDatabase)
{
var vaultKey = new EntryKey("tracks", MediaVaultType.Audio);
if (!fileDatabase.HasVault(vaultKey))
{
await fileDatabase.CreateVaultAsync(vaultKey);
}
}
}
}