diff --git a/File-Watcher.csproj b/File-Watcher.csproj
index 7395d81..9e373b8 100644
--- a/File-Watcher.csproj
+++ b/File-Watcher.csproj
@@ -10,13 +10,13 @@
6062c774-99a9-4f4a-b42d-a9cb7fcbd8be
-
+
-
-
+
+
diff --git a/Helpers/HelperNuget.cs b/Helpers/HelperNuget.cs
index 48b1965..1ea325f 100644
--- a/Helpers/HelperNuget.cs
+++ b/Helpers/HelperNuget.cs
@@ -126,7 +126,7 @@ internal class HelperNuget
}
if (string.IsNullOrEmpty(nugetConfiguration.KeyFileExtension))
continue;
- fileInfo = new(file);
+ fileInfo = new(Path.ChangeExtension(file, nugetConfiguration.KeyFileExtension));
checkFileInfo = new(Path.Combine(nugetConfiguration.Destination, Path.ChangeExtension(fileInfo.Name, nugetConfiguration.KeyFileExtension)));
if (!checkFileInfo.Exists || fileInfo.LastWriteTime != checkFileInfo.LastWriteTime || fileInfo.Length != checkFileInfo.Length)
File.Copy(fileInfo.FullName, checkFileInfo.FullName, overwrite: true);
diff --git a/Models/Binder/AppSettings.cs b/Models/Binder/AppSettings.cs
index 8ce39f5..73b08bc 100644
--- a/Models/Binder/AppSettings.cs
+++ b/Models/Binder/AppSettings.cs
@@ -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 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();
#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;
}
diff --git a/Models/Binder/CompassConfiguration.cs b/Models/Binder/CompassConfiguration.cs
deleted file mode 100644
index c14e5c0..0000000
--- a/Models/Binder/CompassConfiguration.cs
+++ /dev/null
@@ -1,84 +0,0 @@
-using System.Text.Json;
-using System.Text.Json.Serialization;
-
-namespace File_Watcher.Models.Binder;
-
-public class CompassConfiguration
-{
-
- public string? Destination { get; set; }
- public int? HoursBack { get; set; }
- public string? MonthPattern { get; set; }
- public string? Pattern { get; set; }
- public string? Source { get; set; }
- public string? TriggerAppendage { get; set; }
- public string? YearPattern { get; set; }
-
- public override string ToString()
- {
- string result = JsonSerializer.Serialize(this, BinderCompassConfigurationSourceGenerationContext.Default.CompassConfiguration);
- return result;
- }
-
- private static void PreVerify(IConfigurationRoot configurationRoot, CompassConfiguration? configuration)
- {
- if (configuration?.Destination is null)
- {
- List paths = [];
- 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;
- paths.Add(physicalFileProvider.Root);
- }
- throw new NotSupportedException($"Not found!{Environment.NewLine}{string.Join(Environment.NewLine, paths.Distinct())}");
- }
- }
-
- private static void Verify(CompassConfiguration _)
- {
- }
-
- private static Models.CompassConfiguration Get(CompassConfiguration? configuration)
- {
- Models.CompassConfiguration result;
- if (configuration is null) throw new NullReferenceException(nameof(configuration));
- if (configuration.Destination is null) throw new NullReferenceException(nameof(configuration.Destination));
- if (configuration.HoursBack is null) throw new NullReferenceException(nameof(configuration.HoursBack));
- if (configuration.MonthPattern is null) throw new NullReferenceException(nameof(configuration.MonthPattern));
- if (configuration.Pattern is null) throw new NullReferenceException(nameof(configuration.Pattern));
- if (configuration.Source is null) throw new NullReferenceException(nameof(configuration.Source));
- if (configuration.TriggerAppendage is null) throw new NullReferenceException(nameof(configuration.TriggerAppendage));
- if (configuration.YearPattern is null) throw new NullReferenceException(nameof(configuration.YearPattern));
- Verify(configuration);
- result = new(configuration.Destination,
- configuration.HoursBack.Value,
- configuration.MonthPattern,
- configuration.Pattern,
- configuration.Source,
- configuration.TriggerAppendage,
- configuration.YearPattern);
- return result;
- }
-
- public static Models.CompassConfiguration Get(IConfigurationRoot configurationRoot)
- {
- Models.CompassConfiguration result;
- IConfigurationSection configurationSection = configurationRoot.GetSection(nameof(Models.CompassConfiguration));
-#pragma warning disable IL3050, IL2026
- CompassConfiguration? configuration = configurationSection.Get();
-#pragma warning restore IL3050, IL2026
- PreVerify(configurationRoot, configuration);
- result = Get(configuration);
- return result;
- }
-
-}
-
-[JsonSourceGenerationOptions(WriteIndented = true)]
-[JsonSerializable(typeof(CompassConfiguration))]
-internal partial class BinderCompassConfigurationSourceGenerationContext : JsonSerializerContext
-{
-}
\ No newline at end of file
diff --git a/Models/Binder/DriveConfiguration.cs b/Models/Binder/DriveConfiguration.cs
deleted file mode 100644
index 80abf7f..0000000
--- a/Models/Binder/DriveConfiguration.cs
+++ /dev/null
@@ -1,78 +0,0 @@
-using System.Text.Json;
-using System.Text.Json.Serialization;
-
-namespace File_Watcher.Models.Binder;
-
-public class DriveConfiguration
-{
-
- public string? Letter { get; set; }
- public string? Password { get; set; }
- public string? Share { get; set; }
- public bool? Use { get; set; }
- public string? User { get; set; }
-
- public override string ToString()
- {
- string result = JsonSerializer.Serialize(this, BinderDriveConfigurationSourceGenerationContext.Default.DriveConfiguration);
- return result;
- }
-
- private static void PreVerify(IConfigurationRoot configurationRoot, DriveConfiguration? driveConfiguration)
- {
- if (driveConfiguration?.Letter is null)
- {
- List paths = [];
- 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;
- paths.Add(physicalFileProvider.Root);
- }
- throw new NotSupportedException($"Not found!{Environment.NewLine}{string.Join(Environment.NewLine, paths.Distinct())}");
- }
- }
-
- private static void Verify(DriveConfiguration _)
- {
- }
-
- private static Models.DriveConfiguration Get(DriveConfiguration? driveConfiguration)
- {
- Models.DriveConfiguration result;
- if (driveConfiguration?.Letter is null)
- throw new NullReferenceException(nameof(Letter));
- if (driveConfiguration?.Password is null)
- throw new NullReferenceException(nameof(Password));
- if (driveConfiguration?.Share is null)
- throw new NullReferenceException(nameof(Share));
- if (driveConfiguration?.Use is null)
- throw new NullReferenceException(nameof(Use));
- if (driveConfiguration?.User is null)
- throw new NullReferenceException(nameof(User));
- Verify(driveConfiguration);
- result = new(driveConfiguration.Letter, driveConfiguration.Password, driveConfiguration.Share, driveConfiguration.Use.Value, driveConfiguration.User);
- return result;
- }
-
- public static Models.DriveConfiguration Get(IConfigurationRoot configurationRoot)
- {
- Models.DriveConfiguration result;
- IConfigurationSection configurationSection = configurationRoot.GetSection(nameof(Models.DriveConfiguration));
-#pragma warning disable IL3050, IL2026
- DriveConfiguration? driveConfiguration = configurationSection.Get();
-#pragma warning restore IL3050, IL2026
- PreVerify(configurationRoot, driveConfiguration);
- result = Get(driveConfiguration);
- return result;
- }
-
-}
-
-[JsonSourceGenerationOptions(WriteIndented = true)]
-[JsonSerializable(typeof(DriveConfiguration))]
-internal partial class BinderDriveConfigurationSourceGenerationContext : JsonSerializerContext
-{
-}
\ No newline at end of file
diff --git a/Models/Binder/EAFLogConfiguration.cs b/Models/Binder/EAFLogConfiguration.cs
deleted file mode 100644
index 0a3c68e..0000000
--- a/Models/Binder/EAFLogConfiguration.cs
+++ /dev/null
@@ -1,66 +0,0 @@
-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)
- {
- List paths = [];
- 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;
- paths.Add(physicalFileProvider.Root);
- }
- throw new NotSupportedException($"Not found!{Environment.NewLine}{string.Join(Environment.NewLine, paths.Distinct())}");
- }
- }
-
- 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();
-#pragma warning restore IL3050, IL2026
- PreVerify(configurationRoot, configuration);
- result = Get(configuration);
- return result;
- }
-
-}
-
-[JsonSourceGenerationOptions(WriteIndented = true)]
-[JsonSerializable(typeof(EAFLogConfiguration))]
-internal partial class BinderEAFLogConfigurationSourceGenerationContext : JsonSerializerContext
-{
-}
\ No newline at end of file
diff --git a/Models/Binder/EAFProgramDataConfiguration.cs b/Models/Binder/EAFProgramDataConfiguration.cs
deleted file mode 100644
index d8f9817..0000000
--- a/Models/Binder/EAFProgramDataConfiguration.cs
+++ /dev/null
@@ -1,68 +0,0 @@
-using System.Text.Json;
-using System.Text.Json.Serialization;
-
-namespace File_Watcher.Models.Binder;
-
-public class EAFProgramDataConfiguration
-{
-
- public string? Destination { get; set; }
- public string? Source { get; set; }
-
- public override string ToString()
- {
- string result = JsonSerializer.Serialize(this, BinderEAFProgramDataConfigurationSourceGenerationContext.Default.EAFProgramDataConfiguration);
- return result;
- }
-
- private static void PreVerify(IConfigurationRoot configurationRoot, EAFProgramDataConfiguration? configuration)
- {
- if (configuration?.Destination is null)
- {
- List paths = [];
- 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;
- paths.Add(physicalFileProvider.Root);
- }
- throw new NotSupportedException($"Not found!{Environment.NewLine}{string.Join(Environment.NewLine, paths.Distinct())}");
- }
- }
-
- private static void Verify(EAFProgramDataConfiguration _)
- {
- }
-
- private static Models.EAFProgramDataConfiguration Get(EAFProgramDataConfiguration? configuration)
- {
- Models.EAFProgramDataConfiguration result;
- if (configuration is null) throw new NullReferenceException(nameof(configuration));
- if (configuration.Destination is null) throw new NullReferenceException(nameof(configuration.Destination));
- if (configuration.Source is null) throw new NullReferenceException(nameof(configuration.Source));
- Verify(configuration);
- result = new(configuration.Destination, configuration.Source);
- return result;
- }
-
- public static Models.EAFProgramDataConfiguration Get(IConfigurationRoot configurationRoot)
- {
- Models.EAFProgramDataConfiguration result;
- IConfigurationSection configurationSection = configurationRoot.GetSection(nameof(Models.EAFProgramDataConfiguration));
-#pragma warning disable IL3050, IL2026
- EAFProgramDataConfiguration? configuration = configurationSection.Get();
-#pragma warning restore IL3050, IL2026
- PreVerify(configurationRoot, configuration);
- result = Get(configuration);
- return result;
- }
-
-}
-
-[JsonSourceGenerationOptions(WriteIndented = true)]
-[JsonSerializable(typeof(EAFProgramDataConfiguration))]
-internal partial class BinderEAFProgramDataConfigurationSourceGenerationContext : JsonSerializerContext
-{
-}
\ No newline at end of file
diff --git a/Models/Binder/EDADatabaseConfiguration.cs b/Models/Binder/EDADatabaseConfiguration.cs
deleted file mode 100644
index c1e60bf..0000000
--- a/Models/Binder/EDADatabaseConfiguration.cs
+++ /dev/null
@@ -1,84 +0,0 @@
-using System.Text.Json;
-using System.Text.Json.Serialization;
-
-namespace File_Watcher.Models.Binder;
-
-public class EDADatabaseConfiguration
-{
-
- public string? CSharpDateTimeFormat { get; set; }
- public string? FileShare { get; set; }
- public string? Name { get; set; }
- public string? OracleDateTimeFormat { get; set; }
- public string? Password { get; set; }
- public string? TNS { get; set; }
- public string? UserName { get; set; }
-
- public override string ToString()
- {
- string result = JsonSerializer.Serialize(this, BinderEDADatabaseConfigurationSourceGenerationContext.Default.EDADatabaseConfiguration);
- return result;
- }
-
- private static void PreVerify(IConfigurationRoot configurationRoot, EDADatabaseConfiguration? configuration)
- {
- if (configuration?.CSharpDateTimeFormat is null)
- {
- List paths = [];
- 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;
- paths.Add(physicalFileProvider.Root);
- }
- throw new NotSupportedException($"Not found!{Environment.NewLine}{string.Join(Environment.NewLine, paths.Distinct())}");
- }
- }
-
- private static void Verify(EDADatabaseConfiguration _)
- {
- }
-
- private static Models.EDADatabaseConfiguration Get(EDADatabaseConfiguration? configuration)
- {
- Models.EDADatabaseConfiguration result;
- if (configuration is null) throw new NullReferenceException(nameof(configuration));
- if (configuration.CSharpDateTimeFormat is null) throw new NullReferenceException(nameof(configuration.CSharpDateTimeFormat));
- if (configuration.FileShare is null) throw new NullReferenceException(nameof(configuration.FileShare));
- if (configuration.Name is null) throw new NullReferenceException(nameof(configuration.Name));
- if (configuration.OracleDateTimeFormat is null) throw new NullReferenceException(nameof(configuration.OracleDateTimeFormat));
- if (configuration.Password is null) throw new NullReferenceException(nameof(configuration.Password));
- if (configuration.TNS is null) throw new NullReferenceException(nameof(configuration.TNS));
- if (configuration.UserName is null) throw new NullReferenceException(nameof(configuration.UserName));
- Verify(configuration);
- result = new(configuration.CSharpDateTimeFormat,
- configuration.FileShare,
- configuration.Name,
- configuration.OracleDateTimeFormat,
- configuration.Password,
- configuration.TNS,
- configuration.UserName);
- return result;
- }
-
- public static Models.EDADatabaseConfiguration Get(IConfigurationRoot configurationRoot)
- {
- Models.EDADatabaseConfiguration result;
- IConfigurationSection configurationSection = configurationRoot.GetSection(nameof(Models.EDADatabaseConfiguration));
-#pragma warning disable IL3050, IL2026
- EDADatabaseConfiguration? configuration = configurationSection.Get();
-#pragma warning restore IL3050, IL2026
- PreVerify(configurationRoot, configuration);
- result = Get(configuration);
- return result;
- }
-
-}
-
-[JsonSourceGenerationOptions(WriteIndented = true)]
-[JsonSerializable(typeof(EDADatabaseConfiguration))]
-internal partial class BinderEDADatabaseConfigurationSourceGenerationContext : JsonSerializerContext
-{
-}
\ No newline at end of file
diff --git a/Models/Binder/MetrologyConfiguration.cs b/Models/Binder/MetrologyConfiguration.cs
deleted file mode 100644
index 379e0af..0000000
--- a/Models/Binder/MetrologyConfiguration.cs
+++ /dev/null
@@ -1,75 +0,0 @@
-using System.Text.Json;
-using System.Text.Json.Serialization;
-
-namespace File_Watcher.Models.Binder;
-
-public class MetrologyConfiguration
-{
-
- public int? DirectoriesBack { get; set; }
- public int? DeleteOlderThanWeeks { get; set; }
- public string[]? HardcodedValues { get; set; }
- public string[]? SourceDirectories { get; set; }
-
- public override string ToString()
- {
- string result = JsonSerializer.Serialize(this, BinderMetrologyConfigurationSourceGenerationContext.Default.MetrologyConfiguration);
- return result;
- }
-
- private static void PreVerify(IConfigurationRoot configurationRoot, MetrologyConfiguration? configuration)
- {
- if (configuration?.DirectoriesBack is null)
- {
- List paths = [];
- 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;
- paths.Add(physicalFileProvider.Root);
- }
- throw new NotSupportedException($"Not found!{Environment.NewLine}{string.Join(Environment.NewLine, paths.Distinct())}");
- }
- }
-
- private static void Verify(MetrologyConfiguration _)
- {
- }
-
- private static Models.MetrologyConfiguration Get(MetrologyConfiguration? configuration)
- {
- Models.MetrologyConfiguration result;
- if (configuration is null) throw new NullReferenceException(nameof(configuration));
- if (configuration.DirectoriesBack is null) throw new NullReferenceException(nameof(configuration.DirectoriesBack));
- if (configuration.DeleteOlderThanWeeks is null) throw new NullReferenceException(nameof(configuration.DeleteOlderThanWeeks));
- if (configuration.HardcodedValues is null) throw new NullReferenceException(nameof(configuration.HardcodedValues));
- if (configuration.SourceDirectories is null) throw new NullReferenceException(nameof(configuration.SourceDirectories));
- Verify(configuration);
- result = new(configuration.DirectoriesBack.Value,
- configuration.DeleteOlderThanWeeks.Value,
- configuration.HardcodedValues,
- configuration.SourceDirectories);
- return result;
- }
-
- public static Models.MetrologyConfiguration Get(IConfigurationRoot configurationRoot)
- {
- Models.MetrologyConfiguration result;
- IConfigurationSection configurationSection = configurationRoot.GetSection(nameof(Models.MetrologyConfiguration));
-#pragma warning disable IL3050, IL2026
- MetrologyConfiguration? configuration = configurationSection.Get();
-#pragma warning restore IL3050, IL2026
- PreVerify(configurationRoot, configuration);
- result = Get(configuration);
- return result;
- }
-
-}
-
-[JsonSourceGenerationOptions(WriteIndented = true)]
-[JsonSerializable(typeof(MetrologyConfiguration))]
-internal partial class BinderMetrologyConfigurationSourceGenerationContext : JsonSerializerContext
-{
-}
\ No newline at end of file
diff --git a/Models/Binder/NugetConfiguration.cs b/Models/Binder/NugetConfiguration.cs
deleted file mode 100644
index 4836aa3..0000000
--- a/Models/Binder/NugetConfiguration.cs
+++ /dev/null
@@ -1,84 +0,0 @@
-using System.Text.Json;
-using System.Text.Json.Serialization;
-
-namespace File_Watcher.Models.Binder;
-
-public class NugetConfiguration
-{
-
- public string? Destination { get; set; }
- public string? KeyFileExtension { get; set; }
- public string? KeyFileExtensionB { get; set; }
- public string? KeyFileExtensionC { get; set; }
- public bool? RenameToLower { get; set; }
- public string? SearchPattern { get; set; }
- public string? Source { get; set; }
-
- public override string ToString()
- {
- string result = JsonSerializer.Serialize(this, BinderNugetConfigurationSourceGenerationContext.Default.NugetConfiguration);
- return result;
- }
-
- private static void PreVerify(IConfigurationRoot configurationRoot, NugetConfiguration? configuration)
- {
- if (configuration?.Destination is null)
- {
- List paths = [];
- 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;
- paths.Add(physicalFileProvider.Root);
- }
- throw new NotSupportedException($"Not found!{Environment.NewLine}{string.Join(Environment.NewLine, paths.Distinct())}");
- }
- }
-
- private static void Verify(NugetConfiguration _)
- {
- }
-
- private static Models.NugetConfiguration Get(NugetConfiguration? configuration)
- {
- Models.NugetConfiguration result;
- if (configuration is null) throw new NullReferenceException(nameof(configuration));
- if (configuration.Destination is null) throw new NullReferenceException(nameof(configuration.Destination));
- if (configuration.KeyFileExtension is null) throw new NullReferenceException(nameof(configuration.KeyFileExtension));
- if (configuration.KeyFileExtensionB is null) throw new NullReferenceException(nameof(configuration.KeyFileExtensionB));
- if (configuration.KeyFileExtensionC is null) throw new NullReferenceException(nameof(configuration.KeyFileExtensionC));
- if (configuration.RenameToLower is null) throw new NullReferenceException(nameof(configuration.RenameToLower));
- if (configuration.SearchPattern is null) throw new NullReferenceException(nameof(configuration.SearchPattern));
- if (configuration.Source is null) throw new NullReferenceException(nameof(configuration.Source));
- Verify(configuration);
- result = new(configuration.Destination,
- configuration.KeyFileExtension,
- configuration.KeyFileExtensionB,
- configuration.KeyFileExtensionC,
- configuration.RenameToLower.Value,
- configuration.SearchPattern,
- configuration.Source);
- return result;
- }
-
- public static Models.NugetConfiguration Get(IConfigurationRoot configurationRoot)
- {
- Models.NugetConfiguration result;
- IConfigurationSection configurationSection = configurationRoot.GetSection(nameof(Models.NugetConfiguration));
-#pragma warning disable IL3050, IL2026
- NugetConfiguration? configuration = configurationSection.Get();
-#pragma warning restore IL3050, IL2026
- PreVerify(configurationRoot, configuration);
- result = Get(configuration);
- return result;
- }
-
-}
-
-[JsonSourceGenerationOptions(WriteIndented = true)]
-[JsonSerializable(typeof(NugetConfiguration))]
-internal partial class BinderNugetConfigurationSourceGenerationContext : JsonSerializerContext
-{
-}
\ No newline at end of file
diff --git a/Models/Binder/SerialConfiguration.cs b/Models/Binder/SerialConfiguration.cs
deleted file mode 100644
index 774049c..0000000
--- a/Models/Binder/SerialConfiguration.cs
+++ /dev/null
@@ -1,74 +0,0 @@
-using System.Text.Json;
-using System.Text.Json.Serialization;
-
-namespace File_Watcher.Models.Binder;
-
-public class SerialConfiguration
-{
-
- public string? Destination { get; set; }
- public string? GhostPCLFileName { get; set; }
- public string? LincPDFCFileName { get; set; }
- public string? PortName { get; set; }
-
- public override string ToString()
- {
- string result = JsonSerializer.Serialize(this, BinderSerialConfigurationSourceGenerationContext.Default.SerialConfiguration);
- return result;
- }
-
- private static void PreVerify(IConfigurationRoot configurationRoot, SerialConfiguration? configuration)
- {
- if (configuration?.Destination is null)
- {
- List paths = [];
- 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;
- paths.Add(physicalFileProvider.Root);
- }
- throw new NotSupportedException($"Not found!{Environment.NewLine}{string.Join(Environment.NewLine, paths.Distinct())}");
- }
- }
-
- private static void Verify(SerialConfiguration _)
- { }
-
- private static Models.SerialConfiguration Get(SerialConfiguration? configuration)
- {
- Models.SerialConfiguration result;
- if (configuration is null) throw new NullReferenceException(nameof(configuration));
- if (configuration.Destination is null) throw new NullReferenceException(nameof(configuration.Destination));
- if (configuration.GhostPCLFileName is null) throw new NullReferenceException(nameof(configuration.GhostPCLFileName));
- if (configuration.LincPDFCFileName is null) throw new NullReferenceException(nameof(configuration.LincPDFCFileName));
- if (configuration.PortName is null) throw new NullReferenceException(nameof(configuration.PortName));
- Verify(configuration);
- result = new(configuration.Destination,
- configuration.GhostPCLFileName,
- configuration.LincPDFCFileName,
- configuration.PortName);
- return result;
- }
-
- public static Models.SerialConfiguration Get(IConfigurationRoot configurationRoot)
- {
- Models.SerialConfiguration result;
- IConfigurationSection configurationSection = configurationRoot.GetSection(nameof(Models.SerialConfiguration));
-#pragma warning disable IL3050, IL2026
- SerialConfiguration? configuration = configurationSection.Get();
-#pragma warning restore IL3050, IL2026
- PreVerify(configurationRoot, configuration);
- result = Get(configuration);
- return result;
- }
-
-}
-
-[JsonSourceGenerationOptions(WriteIndented = true)]
-[JsonSerializable(typeof(SerialConfiguration))]
-internal partial class BinderSerialConfigurationSourceGenerationContext : JsonSerializerContext
-{
-}
\ No newline at end of file
diff --git a/Models/Binder/StratusConfiguration.cs b/Models/Binder/StratusConfiguration.cs
deleted file mode 100644
index 5007970..0000000
--- a/Models/Binder/StratusConfiguration.cs
+++ /dev/null
@@ -1,72 +0,0 @@
-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)
- {
- List paths = [];
- 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;
- paths.Add(physicalFileProvider.Root);
- }
- throw new NotSupportedException($"Not found!{Environment.NewLine}{string.Join(Environment.NewLine, paths.Distinct())}");
- }
- }
-
- 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();
-#pragma warning restore IL3050, IL2026
- PreVerify(configurationRoot, configuration);
- result = Get(configuration);
- return result;
- }
-
-}
-
-[JsonSourceGenerationOptions(WriteIndented = true)]
-[JsonSerializable(typeof(StratusConfiguration))]
-internal partial class BinderStratusConfigurationSourceGenerationContext : JsonSerializerContext
-{
-}
\ No newline at end of file
diff --git a/Models/Binder/TransmissionControlProtocolConfiguration.cs b/Models/Binder/TransmissionControlProtocolConfiguration.cs
deleted file mode 100644
index de6d82b..0000000
--- a/Models/Binder/TransmissionControlProtocolConfiguration.cs
+++ /dev/null
@@ -1,89 +0,0 @@
-using System.Text.Json;
-using System.Text.Json.Serialization;
-
-namespace File_Watcher.Models.Binder;
-
-public class TransmissionControlProtocolConfiguration
-{
-
- public string? Destination { get; set; }
- public string? GhostPCLFileName { get; set; }
- public string? IPAddress { get; set; }
- public int? Port { get; set; }
- public bool? Server { get; set; }
-
- public override string ToString()
- {
- string result = JsonSerializer.Serialize(this, BinderTransmissionControlProtocolConfigurationSourceGenerationContext.Default.TransmissionControlProtocolConfiguration);
- return result;
- }
-
- private static void PreVerify(IConfigurationRoot configurationRoot, TransmissionControlProtocolConfiguration? configuration)
- {
- if (configuration?.Destination is null)
- {
- List paths = [];
- 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;
- paths.Add(physicalFileProvider.Root);
- }
- throw new NotSupportedException($"Not found!{Environment.NewLine}{string.Join(Environment.NewLine, paths.Distinct())}");
- }
- }
-
- private static void Verify(TransmissionControlProtocolConfiguration _)
- {
- // if (transmissionControlProtocolConfiguration.IPAddresses is null) throw new NullReferenceException(nameof(transmissionControlProtocolConfiguration.IPAddresses));
- // foreach (KeyValuePair keyValuePair in transmissionControlProtocolConfiguration.IPAddresses)
- // {
- // if (string.IsNullOrEmpty(keyValuePair.Key))
- // throw new Exception(nameof(IPAddresses));
- // foreach (string value in keyValuePair.Value)
- // {
- // if (string.IsNullOrEmpty(value))
- // throw new Exception(nameof(IPAddresses));
- // }
- // }
- }
-
- private static Models.TransmissionControlProtocolConfiguration Get(TransmissionControlProtocolConfiguration? configuration)
- {
- Models.TransmissionControlProtocolConfiguration result;
- if (configuration is null) throw new NullReferenceException(nameof(configuration));
- if (configuration.Destination is null) throw new NullReferenceException(nameof(configuration.Destination));
- if (configuration.GhostPCLFileName is null) throw new NullReferenceException(nameof(configuration.GhostPCLFileName));
- if (configuration.IPAddress is null) throw new NullReferenceException(nameof(configuration.IPAddress));
- if (configuration.Port is null) throw new NullReferenceException(nameof(configuration.Port));
- if (configuration.Server is null) throw new NullReferenceException(nameof(configuration.Server));
- Verify(configuration);
- result = new(configuration.Destination,
- configuration.GhostPCLFileName,
- configuration.IPAddress,
- configuration.Port.Value,
- configuration.Server.Value);
- return result;
- }
-
- public static Models.TransmissionControlProtocolConfiguration Get(IConfigurationRoot configurationRoot)
- {
- Models.TransmissionControlProtocolConfiguration result;
- IConfigurationSection configurationSection = configurationRoot.GetSection(nameof(Models.TransmissionControlProtocolConfiguration));
-#pragma warning disable IL3050, IL2026
- TransmissionControlProtocolConfiguration? configuration = configurationSection.Get();
-#pragma warning restore IL3050, IL2026
- PreVerify(configurationRoot, configuration);
- result = Get(configuration);
- return result;
- }
-
-}
-
-[JsonSourceGenerationOptions(WriteIndented = true)]
-[JsonSerializable(typeof(TransmissionControlProtocolConfiguration))]
-internal partial class BinderTransmissionControlProtocolConfigurationSourceGenerationContext : JsonSerializerContext
-{
-}
\ No newline at end of file
diff --git a/Models/Binder/WaferCounterConfiguration.cs b/Models/Binder/WaferCounterConfiguration.cs
deleted file mode 100644
index f15382b..0000000
--- a/Models/Binder/WaferCounterConfiguration.cs
+++ /dev/null
@@ -1,69 +0,0 @@
-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)
- {
- List paths = [];
- 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;
- paths.Add(physicalFileProvider.Root);
- }
- throw new NotSupportedException($"Not found!{Environment.NewLine}{string.Join(Environment.NewLine, paths.Distinct())}");
- }
- }
-
- 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();
-#pragma warning restore IL3050, IL2026
- PreVerify(configurationRoot, configuration);
- result = Get(configuration);
- return result;
- }
-
-}
-
-[JsonSourceGenerationOptions(WriteIndented = true)]
-[JsonSerializable(typeof(WaferCounterConfiguration))]
-internal partial class BinderWaferCounterConfigurationSourceGenerationContext : JsonSerializerContext
-{
-}
\ No newline at end of file
diff --git a/Program.cs b/Program.cs
index c0feb2b..d91295e 100644
--- a/Program.cs
+++ b/Program.cs
@@ -14,29 +14,7 @@ public class Program
WebApplicationBuilder webApplicationBuilder = WebApplication.CreateBuilder(args);
#pragma warning restore IL3050
_ = webApplicationBuilder.Configuration.AddUserSecrets();
- DriveConfiguration driveConfiguration = Models.Binder.DriveConfiguration.Get(webApplicationBuilder.Configuration);
- EAFLogConfiguration eafLogConfiguration = Models.Binder.EAFLogConfiguration.Get(webApplicationBuilder.Configuration);
- EAFProgramDataConfiguration eafProgramDataConfiguration = Models.Binder.EAFProgramDataConfiguration.Get(webApplicationBuilder.Configuration);
- EDADatabaseConfiguration edaDatabaseConfiguration = Models.Binder.EDADatabaseConfiguration.Get(webApplicationBuilder.Configuration);
- SerialConfiguration serialConfiguration = Models.Binder.SerialConfiguration.Get(webApplicationBuilder.Configuration);
- StratusConfiguration stratusConfiguration = Models.Binder.StratusConfiguration.Get(webApplicationBuilder.Configuration);
- CompassConfiguration compassConfiguration = Models.Binder.CompassConfiguration.Get(webApplicationBuilder.Configuration);
- MetrologyConfiguration metrologyConfiguration = Models.Binder.MetrologyConfiguration.Get(webApplicationBuilder.Configuration);
- NugetConfiguration nugetConfiguration = Models.Binder.NugetConfiguration.Get(webApplicationBuilder.Configuration);
- WaferCounterConfiguration waferCounterConfiguration = Models.Binder.WaferCounterConfiguration.Get(webApplicationBuilder.Configuration);
- TransmissionControlProtocolConfiguration transmissionControlProtocolConfiguration = Models.Binder.TransmissionControlProtocolConfiguration.Get(webApplicationBuilder.Configuration);
- AppSettings appSettings = Models.Binder.AppSettings.Get(webApplicationBuilder.Configuration,
- compassConfiguration,
- driveConfiguration,
- eafLogConfiguration,
- eafProgramDataConfiguration,
- edaDatabaseConfiguration,
- nugetConfiguration,
- metrologyConfiguration,
- serialConfiguration,
- stratusConfiguration,
- transmissionControlProtocolConfiguration,
- waferCounterConfiguration);
+ AppSettings appSettings = Models.Binder.AppSettings.Get(webApplicationBuilder.Configuration);
if (string.IsNullOrEmpty(appSettings.Company))
throw new Exception("Company name must have a value!");
try