PreVerify
This commit is contained in:
@ -20,6 +20,23 @@ public class AppSettings
|
||||
return result;
|
||||
}
|
||||
|
||||
private static void PreVerify(IConfigurationRoot configurationRoot, AppSettings? appSettings)
|
||||
{
|
||||
if (appSettings?.Company 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 Models.AppSettings Get(AppSettings? appSettings)
|
||||
{
|
||||
Models.AppSettings result;
|
||||
@ -36,7 +53,10 @@ public class AppSettings
|
||||
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);
|
||||
result = Get(appSettings);
|
||||
return result;
|
||||
}
|
||||
|
@ -7,8 +7,6 @@ namespace View_by_Distance.Drag_Drop.Models.Binder;
|
||||
public class Configuration
|
||||
{
|
||||
|
||||
#nullable disable
|
||||
|
||||
public bool? CheckDFaceAndUpWriteDates { get; set; }
|
||||
public bool? CheckJsonForDistanceResults { get; set; }
|
||||
public int? CrossDirectoryMaxItemsInDistanceCollection { get; set; }
|
||||
@ -16,40 +14,38 @@ public class Configuration
|
||||
public bool? ForceFaceLastWriteTimeToCreationTime { get; set; }
|
||||
public bool? ForceMetadataLastWriteTimeToCreationTime { get; set; }
|
||||
public bool? ForceResizeLastWriteTimeToCreationTime { get; set; }
|
||||
public string[] IgnoreExtensions { get; set; }
|
||||
public string[] JLinks { get; set; }
|
||||
public string[] LoadOrCreateThenSaveDistanceResultsForOutputResolutions { get; set; }
|
||||
public string[] LoadOrCreateThenSaveImageFacesResultsForOutputResolutions { get; set; }
|
||||
public string[] MixedYearRelativePaths { get; set; }
|
||||
public string ModelDirectory { get; set; }
|
||||
public string ModelName { get; set; }
|
||||
public string[]? IgnoreExtensions { get; set; }
|
||||
public string[]? JLinks { get; set; }
|
||||
public string[]? LoadOrCreateThenSaveDistanceResultsForOutputResolutions { get; set; }
|
||||
public string[]? LoadOrCreateThenSaveImageFacesResultsForOutputResolutions { get; set; }
|
||||
public string[]? MixedYearRelativePaths { get; set; }
|
||||
public string? ModelDirectory { get; set; }
|
||||
public string? ModelName { get; set; }
|
||||
public int? NumberOfJitters { get; set; }
|
||||
public int? NumberOfTimesToUpsample { get; set; }
|
||||
public string OutputExtension { get; set; }
|
||||
public string? OutputExtension { get; set; }
|
||||
public int? OutputQuality { get; set; }
|
||||
public string[] OutputResolutions { get; set; }
|
||||
public string[]? OutputResolutions { get; set; }
|
||||
public bool? OverrideForFaceImages { get; set; }
|
||||
public bool? OverrideForFaceLandmarkImages { get; set; }
|
||||
public bool? OverrideForResizeImages { get; set; }
|
||||
public string PersonBirthdayFormat { get; set; }
|
||||
public string PredictorModelName { get; set; }
|
||||
public string? PersonBirthdayFormat { get; set; }
|
||||
public string? PredictorModelName { get; set; }
|
||||
public bool? PropertiesChangedForDistance { get; set; }
|
||||
public bool? PropertiesChangedForFaces { get; set; }
|
||||
public bool? PropertiesChangedForIndex { get; set; }
|
||||
public bool? PropertiesChangedForMetadata { get; set; }
|
||||
public bool? PropertiesChangedForResize { get; set; }
|
||||
public Property.Models.Configuration PropertyConfiguration { get; set; }
|
||||
public Property.Models.Configuration? PropertyConfiguration { get; set; }
|
||||
public bool? Reverse { get; set; }
|
||||
public string[] SaveFaceLandmarkForOutputResolutions { get; set; }
|
||||
public string[]? SaveFaceLandmarkForOutputResolutions { get; set; }
|
||||
public bool? SaveFullYearOfRandomFiles { get; set; }
|
||||
public string[] SaveFilteredOriginalImagesFromJLinksForOutputResolutions { get; set; }
|
||||
public string[] SaveShortcutsForOutputResolutions { get; set; }
|
||||
public string[]? SaveFilteredOriginalImagesFromJLinksForOutputResolutions { get; set; }
|
||||
public string[]? SaveShortcutsForOutputResolutions { get; set; }
|
||||
public bool? SaveResizedSubfiles { get; set; }
|
||||
public bool? SkipSearch { get; set; }
|
||||
public bool? TestDistanceResults { get; set; }
|
||||
public string[] ValidResolutions { get; set; }
|
||||
|
||||
#nullable restore
|
||||
public string[]? ValidResolutions { get; set; }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
@ -57,10 +53,28 @@ public class Configuration
|
||||
return result;
|
||||
}
|
||||
|
||||
private static void PreVerify(IConfigurationRoot configurationRoot, Configuration? configuration)
|
||||
{
|
||||
if (configuration?.CheckDFaceAndUpWriteDates 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 Models.Configuration Get(Configuration? configuration)
|
||||
{
|
||||
Models.Configuration result;
|
||||
if (configuration is null) throw new NullReferenceException(nameof(configuration));
|
||||
if (configuration.PropertyConfiguration is null) throw new NullReferenceException(nameof(configuration.PropertyConfiguration));
|
||||
if (configuration.CheckDFaceAndUpWriteDates is null) throw new NullReferenceException(nameof(configuration.CheckDFaceAndUpWriteDates));
|
||||
if (configuration.CheckJsonForDistanceResults is null) throw new NullReferenceException(nameof(configuration.CheckJsonForDistanceResults));
|
||||
if (configuration.CrossDirectoryMaxItemsInDistanceCollection is null) throw new NullReferenceException(nameof(configuration.CrossDirectoryMaxItemsInDistanceCollection));
|
||||
@ -68,18 +82,23 @@ public class Configuration
|
||||
if (configuration.ForceFaceLastWriteTimeToCreationTime is null) throw new NullReferenceException(nameof(configuration.ForceFaceLastWriteTimeToCreationTime));
|
||||
if (configuration.ForceMetadataLastWriteTimeToCreationTime is null) throw new NullReferenceException(nameof(configuration.ForceMetadataLastWriteTimeToCreationTime));
|
||||
if (configuration.ForceResizeLastWriteTimeToCreationTime is null) throw new NullReferenceException(nameof(configuration.ForceResizeLastWriteTimeToCreationTime));
|
||||
if (configuration.JLinks is null) throw new NullReferenceException(nameof(configuration.JLinks));
|
||||
if (configuration.IgnoreExtensions is null) throw new NullReferenceException(nameof(configuration.IgnoreExtensions));
|
||||
configuration.LoadOrCreateThenSaveDistanceResultsForOutputResolutions ??= [];
|
||||
configuration.LoadOrCreateThenSaveImageFacesResultsForOutputResolutions ??= [];
|
||||
if (configuration.MixedYearRelativePaths is null) throw new NullReferenceException(nameof(configuration.MixedYearRelativePaths));
|
||||
if (configuration.ModelDirectory is null) throw new NullReferenceException(nameof(configuration.ModelDirectory));
|
||||
if (configuration.ModelName is null) throw new NullReferenceException(nameof(configuration.ModelName));
|
||||
if (configuration.NumberOfJitters is null) throw new NullReferenceException(nameof(configuration.NumberOfJitters));
|
||||
if (configuration.NumberOfTimesToUpsample is null) throw new NullReferenceException(nameof(configuration.NumberOfTimesToUpsample));
|
||||
if (configuration.OutputExtension is null) throw new NullReferenceException(nameof(configuration.OutputExtension));
|
||||
if (configuration.OutputQuality is null) throw new NullReferenceException(nameof(configuration.OutputQuality));
|
||||
if (configuration.OutputResolutions is null) throw new NullReferenceException(nameof(configuration.OutputResolutions));
|
||||
if (configuration.OverrideForFaceImages is null) throw new NullReferenceException(nameof(configuration.OverrideForFaceImages));
|
||||
if (configuration.OverrideForFaceLandmarkImages is null) throw new NullReferenceException(nameof(configuration.OverrideForFaceLandmarkImages));
|
||||
if (configuration.OverrideForResizeImages is null) throw new NullReferenceException(nameof(configuration.OverrideForResizeImages));
|
||||
if (configuration.PersonBirthdayFormat is null) throw new NullReferenceException(nameof(configuration.PersonBirthdayFormat));
|
||||
if (configuration.PredictorModelName is null) throw new NullReferenceException(nameof(configuration.PredictorModelName));
|
||||
if (configuration.PropertiesChangedForDistance is null) throw new NullReferenceException(nameof(configuration.PropertiesChangedForDistance));
|
||||
if (configuration.PropertiesChangedForFaces is null) throw new NullReferenceException(nameof(configuration.PropertiesChangedForFaces));
|
||||
if (configuration.PropertiesChangedForIndex is null) throw new NullReferenceException(nameof(configuration.PropertiesChangedForIndex));
|
||||
@ -141,14 +160,19 @@ public class Configuration
|
||||
Models.Configuration result;
|
||||
Configuration? configuration;
|
||||
if (isEnvironment is null)
|
||||
#pragma warning disable IL3050, IL2026
|
||||
configuration = configurationRoot.Get<Configuration>();
|
||||
#pragma warning restore IL3050, IL2026
|
||||
else
|
||||
{
|
||||
string environmentName = IsEnvironment.GetEnvironmentName(isEnvironment);
|
||||
string section = string.Concat(environmentName, ":", nameof(Configuration));
|
||||
IConfigurationSection configurationSection = configurationRoot.GetSection(section);
|
||||
#pragma warning disable IL3050, IL2026
|
||||
configuration = configurationSection.Get<Configuration>();
|
||||
#pragma warning restore IL3050, IL2026
|
||||
}
|
||||
PreVerify(configurationRoot, configuration);
|
||||
result = Get(configuration);
|
||||
return result;
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ public class Program
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
private static void Main()
|
||||
{
|
||||
ApplicationConfiguration.Initialize();
|
||||
Application.Run(new DragDropSearch());
|
||||
|
Reference in New Issue
Block a user