Separate configuration settings
Added EAFLog Testing Stratus file
This commit is contained in:
@ -8,9 +8,8 @@ public class AppSettings
|
||||
|
||||
public string? BuildNumber { get; set; }
|
||||
public string? Company { get; set; }
|
||||
public string? Destination { get; set; }
|
||||
public string? GitCommitSeven { get; set; }
|
||||
public bool? MatchPath { get; set; }
|
||||
public string? Helper { get; set; }
|
||||
public int? MillisecondsDelay { get; set; }
|
||||
public string? WatchDirectory { get; set; }
|
||||
|
||||
@ -20,34 +19,68 @@ public class AppSettings
|
||||
return result;
|
||||
}
|
||||
|
||||
private static Models.AppSettings Get(AppSettings? appSettings)
|
||||
private static void PreVerify(IConfigurationRoot configurationRoot, AppSettings? appSettings)
|
||||
{
|
||||
if (appSettings?.BuildNumber is null)
|
||||
{
|
||||
foreach (IConfigurationProvider configurationProvider in configurationRoot.Providers)
|
||||
{
|
||||
if (configurationProvider is not Microsoft.Extensions.Configuration.Json.JsonConfigurationProvider jsonConfigurationProvider)
|
||||
continue;
|
||||
if (jsonConfigurationProvider.Source.FileProvider is not Microsoft.Extensions.FileProviders.PhysicalFileProvider physicalFileProvider)
|
||||
continue;
|
||||
if (!physicalFileProvider.Root.Contains("UserSecrets"))
|
||||
continue;
|
||||
throw new NotSupportedException(physicalFileProvider.Root);
|
||||
}
|
||||
throw new NotSupportedException("Not Found!");
|
||||
}
|
||||
}
|
||||
|
||||
private static void Verify(AppSettings _)
|
||||
{
|
||||
}
|
||||
|
||||
private static Models.AppSettings Get(AppSettings? appSettings,
|
||||
Models.EAFLogConfiguration eafLogConfiguration,
|
||||
Models.StratusConfiguration stratusConfiguration,
|
||||
Models.WaferCounterConfiguration waferCounterConfiguration)
|
||||
{
|
||||
Models.AppSettings result;
|
||||
if (appSettings is null) throw new NullReferenceException(nameof(appSettings));
|
||||
if (appSettings.BuildNumber is null) throw new NullReferenceException(nameof(BuildNumber));
|
||||
if (appSettings.Company is null) throw new NullReferenceException(nameof(Company));
|
||||
if (appSettings.Destination is null) throw new NullReferenceException(nameof(Destination));
|
||||
if (appSettings.GitCommitSeven is null) throw new NullReferenceException(nameof(GitCommitSeven));
|
||||
if (appSettings.MatchPath is null) throw new NullReferenceException(nameof(MatchPath));
|
||||
if (appSettings.Helper is null) throw new NullReferenceException(nameof(Helper));
|
||||
if (appSettings.MillisecondsDelay is null) throw new NullReferenceException(nameof(MillisecondsDelay));
|
||||
if (appSettings.WatchDirectory is null) throw new NullReferenceException(nameof(WatchDirectory));
|
||||
result = new(appSettings.BuildNumber,
|
||||
Verify(appSettings);
|
||||
result = new(eafLogConfiguration,
|
||||
stratusConfiguration,
|
||||
waferCounterConfiguration,
|
||||
appSettings.BuildNumber,
|
||||
appSettings.Company,
|
||||
appSettings.Destination,
|
||||
appSettings.GitCommitSeven,
|
||||
appSettings.MatchPath.Value,
|
||||
appSettings.Helper,
|
||||
appSettings.MillisecondsDelay.Value,
|
||||
appSettings.WatchDirectory);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static Models.AppSettings Get(IConfiguration configuration)
|
||||
public static Models.AppSettings Get(IConfigurationRoot configurationRoot,
|
||||
Models.EAFLogConfiguration eafLogConfiguration,
|
||||
Models.StratusConfiguration stratusConfiguration,
|
||||
Models.WaferCounterConfiguration waferCounterConfiguration)
|
||||
{
|
||||
Models.AppSettings result;
|
||||
#pragma warning disable IL3050, IL2026
|
||||
AppSettings? appSettings = configuration.Get<AppSettings>();
|
||||
AppSettings? appSettings = configurationRoot.Get<AppSettings>();
|
||||
#pragma warning restore IL3050, IL2026
|
||||
result = Get(appSettings);
|
||||
PreVerify(configurationRoot, appSettings);
|
||||
result = Get(appSettings,
|
||||
eafLogConfiguration,
|
||||
stratusConfiguration,
|
||||
waferCounterConfiguration);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
67
Models/Binder/EAFLogConfiguration.cs
Normal file
67
Models/Binder/EAFLogConfiguration.cs
Normal file
@ -0,0 +1,67 @@
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace File_Watcher.Models.Binder;
|
||||
|
||||
public class EAFLogConfiguration
|
||||
{
|
||||
|
||||
public string? SearchPattern { get; set; }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
string result = JsonSerializer.Serialize(this, BinderEAFLogConfigurationSourceGenerationContext.Default.EAFLogConfiguration);
|
||||
return result;
|
||||
}
|
||||
|
||||
private static void PreVerify(IConfigurationRoot configurationRoot, EAFLogConfiguration? configuration)
|
||||
{
|
||||
if (configuration?.SearchPattern is null)
|
||||
{
|
||||
foreach (IConfigurationProvider configurationProvider in configurationRoot.Providers)
|
||||
{
|
||||
if (configurationProvider is not Microsoft.Extensions.Configuration.Json.JsonConfigurationProvider jsonConfigurationProvider)
|
||||
continue;
|
||||
if (jsonConfigurationProvider.Source.FileProvider is not Microsoft.Extensions.FileProviders.PhysicalFileProvider physicalFileProvider)
|
||||
continue;
|
||||
if (!physicalFileProvider.Root.Contains("UserSecrets"))
|
||||
continue;
|
||||
throw new NotSupportedException(physicalFileProvider.Root);
|
||||
}
|
||||
throw new NotSupportedException("Not Found!");
|
||||
}
|
||||
}
|
||||
|
||||
private static void Verify(EAFLogConfiguration _)
|
||||
{
|
||||
}
|
||||
|
||||
private static Models.EAFLogConfiguration Get(EAFLogConfiguration? configuration)
|
||||
{
|
||||
Models.EAFLogConfiguration result;
|
||||
if (configuration is null) throw new NullReferenceException(nameof(configuration));
|
||||
if (configuration.SearchPattern is null) throw new NullReferenceException(nameof(configuration.SearchPattern));
|
||||
Verify(configuration);
|
||||
result = new(configuration.SearchPattern);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static Models.EAFLogConfiguration Get(IConfigurationRoot configurationRoot)
|
||||
{
|
||||
Models.EAFLogConfiguration result;
|
||||
IConfigurationSection configurationSection = configurationRoot.GetSection(nameof(Models.EAFLogConfiguration));
|
||||
#pragma warning disable IL3050, IL2026
|
||||
EAFLogConfiguration? configuration = configurationSection.Get<EAFLogConfiguration>();
|
||||
#pragma warning restore IL3050, IL2026
|
||||
PreVerify(configurationRoot, configuration);
|
||||
result = Get(configuration);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[JsonSourceGenerationOptions(WriteIndented = true)]
|
||||
[JsonSerializable(typeof(EAFLogConfiguration))]
|
||||
internal partial class BinderEAFLogConfigurationSourceGenerationContext : JsonSerializerContext
|
||||
{
|
||||
}
|
73
Models/Binder/StratusConfiguration.cs
Normal file
73
Models/Binder/StratusConfiguration.cs
Normal file
@ -0,0 +1,73 @@
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace File_Watcher.Models.Binder;
|
||||
|
||||
public class StratusConfiguration
|
||||
{
|
||||
|
||||
public string? Destination { get; set; }
|
||||
public string? FileDelimiterPattern { get; set; }
|
||||
public string? WatchFile { get; set; }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
string result = JsonSerializer.Serialize(this, BinderStratusConfigurationSourceGenerationContext.Default.StratusConfiguration);
|
||||
return result;
|
||||
}
|
||||
|
||||
private static void PreVerify(IConfigurationRoot configurationRoot, StratusConfiguration? configuration)
|
||||
{
|
||||
if (configuration?.Destination is null)
|
||||
{
|
||||
foreach (IConfigurationProvider configurationProvider in configurationRoot.Providers)
|
||||
{
|
||||
if (configurationProvider is not Microsoft.Extensions.Configuration.Json.JsonConfigurationProvider jsonConfigurationProvider)
|
||||
continue;
|
||||
if (jsonConfigurationProvider.Source.FileProvider is not Microsoft.Extensions.FileProviders.PhysicalFileProvider physicalFileProvider)
|
||||
continue;
|
||||
if (!physicalFileProvider.Root.Contains("UserSecrets"))
|
||||
continue;
|
||||
throw new NotSupportedException(physicalFileProvider.Root);
|
||||
}
|
||||
throw new NotSupportedException("Not Found!");
|
||||
}
|
||||
}
|
||||
|
||||
private static void Verify(StratusConfiguration _)
|
||||
{
|
||||
}
|
||||
|
||||
private static Models.StratusConfiguration Get(StratusConfiguration? configuration)
|
||||
{
|
||||
Models.StratusConfiguration result;
|
||||
if (configuration is null) throw new NullReferenceException(nameof(configuration));
|
||||
if (configuration.Destination is null) throw new NullReferenceException(nameof(configuration.Destination));
|
||||
if (configuration.FileDelimiterPattern is null) throw new NullReferenceException(nameof(configuration.FileDelimiterPattern));
|
||||
if (configuration.WatchFile is null) throw new NullReferenceException(nameof(configuration.WatchFile));
|
||||
Verify(configuration);
|
||||
result = new(configuration.Destination,
|
||||
configuration.FileDelimiterPattern,
|
||||
configuration.WatchFile);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static Models.StratusConfiguration Get(IConfigurationRoot configurationRoot)
|
||||
{
|
||||
Models.StratusConfiguration result;
|
||||
IConfigurationSection configurationSection = configurationRoot.GetSection(nameof(Models.StratusConfiguration));
|
||||
#pragma warning disable IL3050, IL2026
|
||||
StratusConfiguration? configuration = configurationSection.Get<StratusConfiguration>();
|
||||
#pragma warning restore IL3050, IL2026
|
||||
PreVerify(configurationRoot, configuration);
|
||||
result = Get(configuration);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[JsonSourceGenerationOptions(WriteIndented = true)]
|
||||
[JsonSerializable(typeof(StratusConfiguration))]
|
||||
internal partial class BinderStratusConfigurationSourceGenerationContext : JsonSerializerContext
|
||||
{
|
||||
}
|
70
Models/Binder/WaferCounterConfiguration.cs
Normal file
70
Models/Binder/WaferCounterConfiguration.cs
Normal file
@ -0,0 +1,70 @@
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace File_Watcher.Models.Binder;
|
||||
|
||||
public class WaferCounterConfiguration
|
||||
{
|
||||
|
||||
public string? Destination { get; set; }
|
||||
public bool? MatchPath { get; set; }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
string result = JsonSerializer.Serialize(this, BinderWaferCounterConfigurationSourceGenerationContext.Default.WaferCounterConfiguration);
|
||||
return result;
|
||||
}
|
||||
|
||||
private static void PreVerify(IConfigurationRoot configurationRoot, WaferCounterConfiguration? configuration)
|
||||
{
|
||||
if (configuration?.Destination is null)
|
||||
{
|
||||
foreach (IConfigurationProvider configurationProvider in configurationRoot.Providers)
|
||||
{
|
||||
if (configurationProvider is not Microsoft.Extensions.Configuration.Json.JsonConfigurationProvider jsonConfigurationProvider)
|
||||
continue;
|
||||
if (jsonConfigurationProvider.Source.FileProvider is not Microsoft.Extensions.FileProviders.PhysicalFileProvider physicalFileProvider)
|
||||
continue;
|
||||
if (!physicalFileProvider.Root.Contains("UserSecrets"))
|
||||
continue;
|
||||
throw new NotSupportedException(physicalFileProvider.Root);
|
||||
}
|
||||
throw new NotSupportedException("Not Found!");
|
||||
}
|
||||
}
|
||||
|
||||
private static void Verify(WaferCounterConfiguration _)
|
||||
{
|
||||
}
|
||||
|
||||
private static Models.WaferCounterConfiguration Get(WaferCounterConfiguration? configuration)
|
||||
{
|
||||
Models.WaferCounterConfiguration result;
|
||||
if (configuration is null) throw new NullReferenceException(nameof(configuration));
|
||||
if (configuration.Destination is null) throw new NullReferenceException(nameof(configuration.Destination));
|
||||
if (configuration.MatchPath is null) throw new NullReferenceException(nameof(configuration.MatchPath));
|
||||
Verify(configuration);
|
||||
result = new(configuration.Destination,
|
||||
configuration.MatchPath.Value);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static Models.WaferCounterConfiguration Get(IConfigurationRoot configurationRoot)
|
||||
{
|
||||
Models.WaferCounterConfiguration result;
|
||||
IConfigurationSection configurationSection = configurationRoot.GetSection(nameof(Models.WaferCounterConfiguration));
|
||||
#pragma warning disable IL3050, IL2026
|
||||
WaferCounterConfiguration? configuration = configurationSection.Get<WaferCounterConfiguration>();
|
||||
#pragma warning restore IL3050, IL2026
|
||||
PreVerify(configurationRoot, configuration);
|
||||
result = Get(configuration);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[JsonSourceGenerationOptions(WriteIndented = true)]
|
||||
[JsonSerializable(typeof(WaferCounterConfiguration))]
|
||||
internal partial class BinderWaferCounterConfigurationSourceGenerationContext : JsonSerializerContext
|
||||
{
|
||||
}
|
Reference in New Issue
Block a user