This commit is contained in:
2026-03-18 18:59:41 +01:00
parent 9f14bb2c86
commit 4f74192cb6
11 changed files with 69 additions and 15 deletions
@@ -0,0 +1,31 @@
using Microsoft.Extensions.Configuration;
namespace Musify.Infrastructure.Configuration
{
public class DatabaseConfiguration
{
public const string SectionName = "Database";
public string ConnectionString { get; set; } = string.Empty;
public static DatabaseConfiguration Load(IConfiguration configuration)
{
var databaseConfiguration = configuration.GetSection(SectionName).Get<DatabaseConfiguration>()
?? throw new InvalidOperationException($"{SectionName} configuration section not found.");
Validate(databaseConfiguration);
return databaseConfiguration;
}
static void Validate(DatabaseConfiguration configuration)
{
EnsureValue(configuration.ConnectionString, nameof(configuration.ConnectionString));
}
static void EnsureValue(string value, string name)
{
if (string.IsNullOrEmpty(value))
throw new InvalidOperationException($"{name} configuration value not found.");
}
}
}