Removed nested objects from Microsoft User Secrets

This commit is contained in:
2024-05-21 07:37:43 -07:00
parent 878750b284
commit 26a28afe78
15 changed files with 61 additions and 904 deletions

View File

@ -7,6 +7,9 @@ public class AppSettings
{
public string? BuildNumber { get; set; }
public string[]? ConfigurationDirectoryNames { get; set; }
public int? ConfigurationSpecialFolder { get; set; }
public string? ConfigurationFileName { get; set; }
public string? Company { get; set; }
public string? GitCommitSeven { get; set; }
public string? Helper { get; set; }
@ -41,17 +44,17 @@ public class AppSettings
}
private static Models.AppSettings Get(AppSettings? appSettings,
Models.DriveConfiguration driveConfiguration,
Models.CompassConfiguration compassConfiguration,
Models.EAFLogConfiguration eafLogConfiguration,
Models.EAFProgramDataConfiguration eafProgramDataConfiguration,
Models.EDADatabaseConfiguration edaDatabaseConfiguration,
Models.NugetConfiguration nugetConfiguration,
Models.MetrologyConfiguration metrologyConfiguration,
Models.SerialConfiguration serialConfiguration,
Models.StratusConfiguration stratusConfiguration,
Models.TransmissionControlProtocolConfiguration transmissionControlProtocolConfiguration,
Models.WaferCounterConfiguration waferCounterConfiguration)
DriveConfiguration driveConfiguration,
CompassConfiguration compassConfiguration,
EAFLogConfiguration eafLogConfiguration,
EAFProgramDataConfiguration eafProgramDataConfiguration,
EDADatabaseConfiguration edaDatabaseConfiguration,
NugetConfiguration nugetConfiguration,
MetrologyConfiguration metrologyConfiguration,
SerialConfiguration serialConfiguration,
StratusConfiguration stratusConfiguration,
TransmissionControlProtocolConfiguration transmissionControlProtocolConfiguration,
WaferCounterConfiguration waferCounterConfiguration)
{
Models.AppSettings result;
if (appSettings is null) throw new NullReferenceException(nameof(appSettings));
@ -82,36 +85,55 @@ public class AppSettings
return result;
}
public static Models.AppSettings Get(IConfigurationRoot configurationRoot,
Models.CompassConfiguration compassConfiguration,
Models.DriveConfiguration driveConfiguration,
Models.EAFLogConfiguration eafLogConfiguration,
Models.EAFProgramDataConfiguration eafProgramDataConfiguration,
Models.EDADatabaseConfiguration edaDatabaseConfiguration,
Models.NugetConfiguration nugetConfiguration,
Models.MetrologyConfiguration metrologyConfiguration,
Models.SerialConfiguration serialConfiguration,
Models.StratusConfiguration stratusConfiguration,
Models.TransmissionControlProtocolConfiguration transmissionControlProtocolConfiguration,
Models.WaferCounterConfiguration waferCounterConfiguration)
private static string? GetJson(AppSettings? appSettings)
{
string? result;
if (appSettings is null || appSettings.ConfigurationFileName is null)
result = null;
else
{
string jsonFile = Path.Combine(AppContext.BaseDirectory, appSettings.ConfigurationFileName);
if (File.Exists(jsonFile))
result = File.ReadAllText(jsonFile);
else
{
result = null;
string applicationData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
List<string> collection = [applicationData];
if (appSettings?.ConfigurationDirectoryNames is not null)
collection.AddRange(appSettings.ConfigurationDirectoryNames);
if (appSettings?.ConfigurationFileName is not null)
collection.Add(appSettings.ConfigurationFileName);
jsonFile = Path.Combine(collection.ToArray());
}
if (string.IsNullOrEmpty(result) && File.Exists(jsonFile))
result = File.ReadAllText(jsonFile);
}
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);
string? json = GetJson(appSettings);
Models.AppSettings? modelsAppSettings = (string.IsNullOrEmpty(json) ? null : modelsAppSettings = JsonSerializer.Deserialize(json, AppSettingsSourceGenerationContext.Default.AppSettings)) ??
throw new NullReferenceException(nameof(Models.AppSettings));
result = Get(appSettings,
driveConfiguration,
compassConfiguration,
eafLogConfiguration,
eafProgramDataConfiguration,
edaDatabaseConfiguration,
nugetConfiguration,
metrologyConfiguration,
serialConfiguration,
stratusConfiguration,
transmissionControlProtocolConfiguration,
waferCounterConfiguration);
modelsAppSettings.DriveConfiguration,
modelsAppSettings.CompassConfiguration,
modelsAppSettings.EAFLogConfiguration,
modelsAppSettings.EAFProgramDataConfiguration,
modelsAppSettings.EDADatabaseConfiguration,
modelsAppSettings.NugetConfiguration,
modelsAppSettings.MetrologyConfiguration,
modelsAppSettings.SerialConfiguration,
modelsAppSettings.StratusConfiguration,
modelsAppSettings.TransmissionControlProtocolConfiguration,
modelsAppSettings.WaferCounterConfiguration);
return result;
}