re-organized configurations

This commit is contained in:
2023-11-12 10:12:51 -07:00
parent bf8b1c010e
commit 9e60e23391
23 changed files with 481 additions and 607 deletions

View File

@ -9,6 +9,7 @@ public class AppSettings
public string? Company { get; set; }
public int? MaxDegreeOfParallelism { get; set; }
public bool? RequireRootDirectoryExists { get; set; }
public override string ToString()
{
@ -16,23 +17,8 @@ public class AppSettings
return result;
}
private static Models.AppSettings Get(AppSettings? appSettings)
private static void PreVerify(IConfigurationRoot configurationRoot, AppSettings? appSettings)
{
Models.AppSettings result;
if (appSettings?.Company is null) throw new NullReferenceException(nameof(appSettings.Company));
if (appSettings?.MaxDegreeOfParallelism is null) throw new NullReferenceException(nameof(appSettings.MaxDegreeOfParallelism));
result = new(
appSettings.Company,
appSettings.MaxDegreeOfParallelism.Value);
return result;
}
public static Models.AppSettings Get(IConfigurationRoot configurationRoot)
{
Models.AppSettings result;
#pragma warning disable IL3050, IL2026
AppSettings? appSettings = configurationRoot.Get<AppSettings>();
#pragma warning restore IL3050, IL2026
if (appSettings?.Company is null)
{
foreach (IConfigurationProvider configurationProvider in configurationRoot.Providers)
@ -46,6 +32,33 @@ public class AppSettings
throw new NotSupportedException(physicalFileProvider.Root);
}
}
}
private static void Verify(AppSettings _)
{
}
private static Models.AppSettings Get(AppSettings? appSettings)
{
Models.AppSettings result;
if (appSettings is null) throw new NullReferenceException(nameof(appSettings));
if (appSettings.Company is null) throw new NullReferenceException(nameof(appSettings.Company));
if (appSettings.MaxDegreeOfParallelism is null) throw new NullReferenceException(nameof(appSettings.MaxDegreeOfParallelism));
if (appSettings.RequireRootDirectoryExists is null) throw new NullReferenceException(nameof(appSettings.RequireRootDirectoryExists));
Verify(appSettings);
result = new(appSettings.Company,
appSettings.MaxDegreeOfParallelism.Value,
appSettings.RequireRootDirectoryExists.Value);
return result;
}
public static Models.AppSettings Get(IConfigurationRoot configurationRoot)
{
Models.AppSettings result;
#pragma warning disable IL3050, IL2026
AppSettings? appSettings = configurationRoot.Get<AppSettings>();
#pragma warning restore IL3050, IL2026
PreVerify(configurationRoot, appSettings);
result = Get(appSettings);
return result;
}