HelperNuget
This commit is contained in:
@ -8,6 +8,7 @@ public record AppSettings(EAFLogConfiguration EAFLogConfiguration,
|
||||
EDADatabaseConfiguration EDADatabaseConfiguration,
|
||||
CompassConfiguration CompassConfiguration,
|
||||
DriveConfiguration DriveConfiguration,
|
||||
NugetConfiguration NugetConfiguration,
|
||||
MetrologyConfiguration MetrologyConfiguration,
|
||||
SerialConfiguration SerialConfiguration,
|
||||
StratusConfiguration StratusConfiguration,
|
||||
|
@ -46,6 +46,7 @@ public class AppSettings
|
||||
Models.EAFLogConfiguration eafLogConfiguration,
|
||||
Models.EAFProgramDataConfiguration eafProgramDataConfiguration,
|
||||
Models.EDADatabaseConfiguration edaDatabaseConfiguration,
|
||||
Models.NugetConfiguration nugetConfiguration,
|
||||
Models.MetrologyConfiguration metrologyConfiguration,
|
||||
Models.SerialConfiguration serialConfiguration,
|
||||
Models.StratusConfiguration stratusConfiguration,
|
||||
@ -66,6 +67,7 @@ public class AppSettings
|
||||
edaDatabaseConfiguration,
|
||||
compassConfiguration,
|
||||
driveConfiguration,
|
||||
nugetConfiguration,
|
||||
metrologyConfiguration,
|
||||
serialConfiguration,
|
||||
stratusConfiguration,
|
||||
@ -86,6 +88,7 @@ public class AppSettings
|
||||
Models.EAFLogConfiguration eafLogConfiguration,
|
||||
Models.EAFProgramDataConfiguration eafProgramDataConfiguration,
|
||||
Models.EDADatabaseConfiguration edaDatabaseConfiguration,
|
||||
Models.NugetConfiguration nugetConfiguration,
|
||||
Models.MetrologyConfiguration metrologyConfiguration,
|
||||
Models.SerialConfiguration serialConfiguration,
|
||||
Models.StratusConfiguration stratusConfiguration,
|
||||
@ -103,6 +106,7 @@ public class AppSettings
|
||||
eafLogConfiguration,
|
||||
eafProgramDataConfiguration,
|
||||
edaDatabaseConfiguration,
|
||||
nugetConfiguration,
|
||||
metrologyConfiguration,
|
||||
serialConfiguration,
|
||||
stratusConfiguration,
|
||||
|
84
Models/Binder/NugetConfiguration.cs
Normal file
84
Models/Binder/NugetConfiguration.cs
Normal file
@ -0,0 +1,84 @@
|
||||
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<string> 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<NugetConfiguration>();
|
||||
#pragma warning restore IL3050, IL2026
|
||||
PreVerify(configurationRoot, configuration);
|
||||
result = Get(configuration);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[JsonSourceGenerationOptions(WriteIndented = true)]
|
||||
[JsonSerializable(typeof(NugetConfiguration))]
|
||||
internal partial class BinderNugetConfigurationSourceGenerationContext : JsonSerializerContext
|
||||
{
|
||||
}
|
27
Models/NugetConfiguration.cs
Normal file
27
Models/NugetConfiguration.cs
Normal file
@ -0,0 +1,27 @@
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace File_Watcher.Models;
|
||||
|
||||
public record NugetConfiguration(string Destination,
|
||||
string KeyFileExtension,
|
||||
string KeyFileExtensionB,
|
||||
string KeyFileExtensionC,
|
||||
bool RenameToLower,
|
||||
string SearchPattern,
|
||||
string Source)
|
||||
{
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
string result = JsonSerializer.Serialize(this, NugetConfigurationSourceGenerationContext.Default.NugetConfiguration);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[JsonSourceGenerationOptions(WriteIndented = true)]
|
||||
[JsonSerializable(typeof(NugetConfiguration))]
|
||||
internal partial class NugetConfigurationSourceGenerationContext : JsonSerializerContext
|
||||
{
|
||||
}
|
Reference in New Issue
Block a user