Removed nested objects from Microsoft User Secrets
This commit is contained in:
@ -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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user