Removed Configuration.SetAndUpdate
This commit is contained in:
@ -195,6 +195,15 @@ public partial class DlibDotNet
|
||||
|
||||
private static void Verify(Models.Configuration configuration)
|
||||
{
|
||||
if (configuration.RangeDaysDeltaTolerance.Length != 3)
|
||||
throw new NullReferenceException(nameof(configuration.RangeDaysDeltaTolerance));
|
||||
if (configuration.RangeDistanceTolerance.Length != 3)
|
||||
throw new NullReferenceException(nameof(configuration.RangeDistanceTolerance));
|
||||
if (configuration.RangeFaceAreaPermyriadTolerance.Length != 3)
|
||||
throw new NullReferenceException(nameof(configuration.RangeFaceAreaPermyriadTolerance));
|
||||
if (configuration.RangeFaceConfidence.Length != 3)
|
||||
throw new NullReferenceException(nameof(configuration.RangeFaceConfidence));
|
||||
_ = DateTime.Now.AddDays(-configuration.RangeDaysDeltaTolerance[1]);
|
||||
if (configuration.OutputResolutions.Length == 0 || string.IsNullOrEmpty(configuration.OutputResolutions[0]) || !configuration.ValidResolutions.Contains(configuration.OutputResolutions[0]))
|
||||
throw new NullReferenceException($"{nameof(configuration.OutputResolutions)} must be fileNameToCollection valid outputResolution!");
|
||||
if ((from l in configuration.OutputResolutions where !configuration.ValidResolutions.Contains(l) select false).Any())
|
||||
@ -783,7 +792,7 @@ public partial class DlibDotNet
|
||||
SortingContainer[] sortingContainers;
|
||||
FaceDistanceContainer[] filteredFaceDistanceContainers;
|
||||
long? skipOlderThan = _Configuration.SkipOlderThanDays is null ? null : new DateTime(ticks).AddDays(-_Configuration.SkipOlderThanDays.Value).Ticks;
|
||||
distanceLimits = new(_Configuration.FaceAreaPermyriad, _Configuration.FaceConfidencePercent, _Configuration.FaceDistancePermyriad, _Configuration.RangeDaysDeltaTolerance, _Configuration.RangeDistanceTolerance, _Configuration.RangeFaceAreaTolerance, _Configuration.RangeFaceConfidence, _Configuration.SortingMaximumPerFaceShouldBeHigh);
|
||||
distanceLimits = new(_Configuration.FaceAreaPermyriad, _Configuration.FaceConfidencePercent, _Configuration.FaceDistancePermyriad, _Configuration.RangeDaysDeltaTolerance, _Configuration.RangeDistanceTolerance, _Configuration.RangeFaceAreaPermyriadTolerance, _Configuration.RangeFaceConfidence, _Configuration.SortingMaximumPerFaceShouldBeHigh);
|
||||
filteredFaceDistanceContainers = E_Distance.FilteredFaceDistanceContainers(mapLogic, faceDistanceContainers, skipOlderThan, distanceLimits);
|
||||
if (filteredFaceDistanceContainers.Length == 0)
|
||||
_Log.Information("All images have been filtered!");
|
||||
@ -794,7 +803,7 @@ public partial class DlibDotNet
|
||||
{
|
||||
for (useFiltersCounter = 1; useFiltersCounter < _Configuration.UseFilterTries; useFiltersCounter++)
|
||||
{
|
||||
distanceLimits = new(_Configuration.FaceAreaPermyriad, _Configuration.FaceConfidencePercent, _Configuration.FaceDistancePermyriad, _Configuration.RangeDaysDeltaTolerance, _Configuration.RangeDistanceTolerance, _Configuration.RangeFaceAreaTolerance, _Configuration.RangeFaceConfidence, _Configuration.SortingMaximumPerFaceShouldBeHigh, useFiltersCounter);
|
||||
distanceLimits = new(_Configuration.FaceAreaPermyriad, _Configuration.FaceConfidencePercent, _Configuration.FaceDistancePermyriad, _Configuration.RangeDaysDeltaTolerance, _Configuration.RangeDistanceTolerance, _Configuration.RangeFaceAreaPermyriadTolerance, _Configuration.RangeFaceConfidence, _Configuration.SortingMaximumPerFaceShouldBeHigh, useFiltersCounter);
|
||||
filteredFaceDistanceContainers = E_Distance.FilteredFaceDistanceContainers(mapLogic, faceDistanceContainers, skipOlderThan, distanceLimits);
|
||||
if (filteredFaceDistanceContainers.Length == 0)
|
||||
_Log.Information("All images have been filtered!");
|
||||
@ -1238,7 +1247,7 @@ public partial class DlibDotNet
|
||||
&& _Exceptions.Count == 0)
|
||||
MapLogic(ticks, new(containers), fPhotoPrismContentDirectory, mapLogic, outputResolution, new(personKeyToIds), distinctFilteredFaces, distinctFilteredMappingCollection);
|
||||
if (_Configuration.SaveRandomForOutputResolutions.Contains(outputResolution) && personKeyToIds.Count > 0 && distinctFilteredMappingCollection.Count > 0)
|
||||
_Random.Random(_Configuration.PropertyConfiguration, _Configuration.ValidKeyWordsToIgnoreInRandom, outputResolution, personKeyToIds, distinctFilteredMappingCollection);
|
||||
_Random.Random(_Configuration.PropertyConfiguration, _Configuration.RadomUseBirthdayMinimum, _Configuration.ValidKeyWordsToIgnoreInRandom, outputResolution, personKeyToIds, distinctFilteredMappingCollection);
|
||||
if (_IsEnvironment.Development)
|
||||
continue;
|
||||
if (!_IsEnvironment.Development)
|
||||
|
2
Instance/Models/Binder/.editorconfig
Normal file
2
Instance/Models/Binder/.editorconfig
Normal file
@ -0,0 +1,2 @@
|
||||
[*.cs]
|
||||
csharp_preserve_single_line_statements = true
|
@ -7,13 +7,9 @@ namespace View_by_Distance.Instance.Models.Binder;
|
||||
public class AppSettings
|
||||
{
|
||||
|
||||
#nullable disable
|
||||
|
||||
public string Company { get; set; }
|
||||
public string? Company { get; set; }
|
||||
public int? MaxDegreeOfParallelism { get; set; }
|
||||
public string WorkingDirectoryName { get; set; }
|
||||
|
||||
#nullable restore
|
||||
public string? WorkingDirectoryName { get; set; }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
@ -24,8 +20,9 @@ public class AppSettings
|
||||
private static Models.AppSettings Get(AppSettings? appSettings)
|
||||
{
|
||||
Models.AppSettings result;
|
||||
if (appSettings?.MaxDegreeOfParallelism is null)
|
||||
throw new NullReferenceException(nameof(appSettings.MaxDegreeOfParallelism));
|
||||
if (appSettings?.Company is null) throw new NullReferenceException(nameof(appSettings.Company));
|
||||
if (appSettings?.MaxDegreeOfParallelism is null) throw new NullReferenceException(nameof(appSettings.MaxDegreeOfParallelism));
|
||||
if (appSettings?.WorkingDirectoryName is null) throw new NullReferenceException(nameof(appSettings.WorkingDirectoryName));
|
||||
result = new(
|
||||
appSettings.Company,
|
||||
appSettings.MaxDegreeOfParallelism.Value,
|
||||
|
@ -1,6 +1,5 @@
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Phares.Shared;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text.Json;
|
||||
|
||||
namespace View_by_Distance.Instance.Models.Binder;
|
||||
@ -8,94 +7,90 @@ namespace View_by_Distance.Instance.Models.Binder;
|
||||
public class Configuration
|
||||
{
|
||||
|
||||
#nullable disable
|
||||
|
||||
[Display(Name = "Check D Face and Up Dates"), Required] public bool? CheckDFaceAndUpWriteDates { get; set; }
|
||||
[Display(Name = "Check Json For Distance Results"), Required] public bool? CheckJsonForDistanceResults { get; set; }
|
||||
[Display(Name = "Copy Faces and Face Landmark for Output Resolutions"), Required] public string[] CopyFacesAndSaveFaceLandmarkForOutputResolutions { get; set; }
|
||||
[Display(Name = "CrossDirectory Max Items In Distance Collection"), Required] public int? CrossDirectoryMaxItemsInDistanceCollection { get; set; }
|
||||
[Display(Name = "Delete Possible Duplicates"), Required] public bool? DeletePossibleDuplicates { get; set; }
|
||||
[Display(Name = "Distance Factor"), Required] public int? DistanceFactor { get; set; }
|
||||
[Display(Name = "Distance Move Unable to Match by 1 Tick"), Required] public bool? DistanceMoveUnableToMatch { get; set; }
|
||||
[Display(Name = "Distance Pixel Distance Tolerance"), Required] public int? DistancePixelDistanceTolerance { get; set; }
|
||||
[Display(Name = "Distance Rename to Match"), Required] public bool? DistanceRenameToMatch { get; set; }
|
||||
[Display(Name = "Eye Threshold"), Required] public int? EyeThreshold { get; set; }
|
||||
[Display(Name = "Face Area Permille"), Required] public int? FaceAreaPermyriad { get; set; }
|
||||
[Display(Name = "Face Distance Hidden Image Factor"), Required] public int? FaceDistanceHiddenImageFactor { get; set; }
|
||||
[Display(Name = "Face Confidence Percent"), Required] public int? FaceConfidencePercent { get; set; }
|
||||
[Display(Name = "Face Distance Permyriad"), Required] public int? FaceDistancePermyriad { get; set; }
|
||||
[Display(Name = "Focus Directory"), Required] public string FocusDirectory { get; set; }
|
||||
[Display(Name = "Focus Model"), Required] public string FocusModel { get; set; }
|
||||
[Display(Name = "Force Face Last Write Time to Creation Time"), Required] public bool? ForceFaceLastWriteTimeToCreationTime { get; set; }
|
||||
[Display(Name = "Force Metadata Last Write Time to Creation Time"), Required] public bool? ForceMetadataLastWriteTimeToCreationTime { get; set; }
|
||||
[Display(Name = "Force Resize Last Write Time to Creation Time"), Required] public bool? ForceResizeLastWriteTimeToCreationTime { get; set; }
|
||||
[Display(Name = "GenealogicalDataCommunication File"), Required] public string GenealogicalDataCommunicationFile { get; set; }
|
||||
[Display(Name = "Ignore Extensions"), Required] public string[] IgnoreExtensions { get; set; }
|
||||
[Display(Name = "Julie Phares Copy Birthdays"), Required] public string[] JLinks { get; set; }
|
||||
[Display(Name = "Load Or Create Then Save Distance Results"), Required] public string[] LoadOrCreateThenSaveDistanceResultsForOutputResolutions { get; set; }
|
||||
[Display(Name = "Load Or Create Then Save Image Faces Results"), Required] public string[] LoadOrCreateThenSaveImageFacesResultsForOutputResolutions { get; set; }
|
||||
[Display(Name = "Load PhotoPrism Locations"), Required] public bool? LoadPhotoPrismLocations { get; set; }
|
||||
[Display(Name = "Location Containers Distance Tolerance"), Required] public float? LocationContainerDistanceTolerance { get; set; }
|
||||
[Display(Name = "Location Digits"), Required] public int? LocationDigits { get; set; }
|
||||
[Display(Name = "Location Factor"), Required] public int? LocationFactor { get; set; }
|
||||
[Display(Name = "Look for Abandoned"), Required] public bool? LookForAbandoned { get; set; }
|
||||
[Display(Name = "Mapping Default Name"), Required] public string MappingDefaultName { get; set; }
|
||||
[Display(Name = "Mapping Use Deterministic Hash Code Unknown Face Key Value Pairs for Add to Mapping"), Required] public bool? MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping { get; set; }
|
||||
[Display(Name = "Mapping Use Deterministic Hash Code Unknown Face Key Value Pairs for Save Mapping"), Required] public bool? MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping { get; set; }
|
||||
[Display(Name = "Mixed Year Relative Paths"), Required] public string[] MixedYearRelativePaths { get; set; }
|
||||
[Display(Name = "Model Directory"), Required] public string ModelDirectory { get; set; }
|
||||
[Display(Name = "Model Name"), Required] public string ModelName { get; set; }
|
||||
[Display(Name = "Number Jitters"), Required] public int? NumberOfJitters { get; set; }
|
||||
[Display(Name = "Number of Times To Up Sample"), Required] public int? NumberOfTimesToUpsample { get; set; }
|
||||
[Display(Name = "Output Extension"), Required] public string OutputExtension { get; set; }
|
||||
[Display(Name = "Output Quality"), Required] public int? OutputQuality { get; set; }
|
||||
[Display(Name = "Output Resolutions"), Required] public string[] OutputResolutions { get; set; }
|
||||
[Display(Name = "Override For Face Images"), Required] public bool? OverrideForFaceImages { get; set; }
|
||||
[Display(Name = "Override For Face Landmark Images"), Required] public bool? OverrideForFaceLandmarkImages { get; set; }
|
||||
[Display(Name = "Override For Resize Images"), Required] public bool? OverrideForResizeImages { get; set; }
|
||||
[Display(Name = "Person Birthday First Year"), Required] public int? PersonBirthdayFirstYear { get; set; }
|
||||
[Display(Name = "Person Birthday Format"), Required] public string PersonBirthdayFormat { get; set; }
|
||||
[Display(Name = "Person Characters"), Required] public string PersonCharacters { get; set; }
|
||||
[Display(Name = "Person Characters Copy Count"), Required] public int? PersonCharactersCopyCount { get; set; }
|
||||
[Display(Name = "PersonKey Format"), Required] public string PersonKeyFormat { get; set; }
|
||||
[Display(Name = "Predictor Model Name"), Required] public string PredictorModelName { get; set; }
|
||||
[Display(Name = "Properties Changed For Distance"), Required] public bool? PropertiesChangedForDistance { get; set; }
|
||||
[Display(Name = "Properties Changed For Faces"), Required] public bool? PropertiesChangedForFaces { get; set; }
|
||||
[Display(Name = "Properties Changed For Index"), Required] public bool? PropertiesChangedForIndex { get; set; }
|
||||
[Display(Name = "Properties Changed For Metadata"), Required] public bool? PropertiesChangedForMetadata { get; set; }
|
||||
[Display(Name = "Properties Changed For Resize"), Required] public bool? PropertiesChangedForResize { get; set; }
|
||||
[Display(Name = "Property Configuration"), Required] public Property.Models.Configuration PropertyConfiguration { get; set; }
|
||||
[Display(Name = "Sorting Days Delta Tolerance"), Required] public int[] RangeDaysDeltaTolerance { get; set; }
|
||||
[Display(Name = "Face Distance Tolerance"), Required] public float[] RangeDistanceTolerance { get; set; }
|
||||
[Display(Name = "Face Area Permille Tolerance"), Required] public float[] RangeFaceAreaTolerance { get; set; }
|
||||
[Display(Name = "Location Minimum Confidence"), Required] public float[] RangeFaceConfidence { get; set; }
|
||||
[Display(Name = "Rectangle Intersect Minimums"), Required] public float[] RectangleIntersectMinimums { get; set; }
|
||||
[Display(Name = "Reverse"), Required] public bool? Reverse { get; set; }
|
||||
[Display(Name = "Save Blur Hash For Output Resolutions"), Required] public string[] SaveBlurHashForOutputResolutions { get; set; }
|
||||
[Display(Name = "Save Face Distances For Output Resolutions"), Required] public string[] SaveFaceDistancesForOutputResolutions { get; set; }
|
||||
[Display(Name = "Save Face Landmark For Output Resolutions"), Required] public string[] SaveFaceLandmarkForOutputResolutions { get; set; }
|
||||
[Display(Name = "Save Full Year Of Random Files"), Required] public bool? SaveFullYearOfRandomFiles { get; set; }
|
||||
[Display(Name = "Save Mapped"), Required] public string[] SaveMappedForOutputResolutions { get; set; }
|
||||
[Display(Name = "Save Resized Images by Person Key Formatted"), Required] public string[] SaveFilteredOriginalImagesFromJLinksForOutputResolutions { get; set; }
|
||||
[Display(Name = "Save For Individually"), Required] public bool? SaveIndividually { get; set; }
|
||||
[Display(Name = "Save Property Shortcuts for Output Resolutions"), Required] public string[] SavePropertyShortcutsForOutputResolutions { get; set; }
|
||||
[Display(Name = "Save Random For Output Resolutions"), Required] public string[] SaveRandomForOutputResolutions { get; set; }
|
||||
[Display(Name = "Save Resized Subfiles"), Required] public bool? SaveResizedSubfiles { get; set; }
|
||||
[Display(Name = "Save Shortcuts"), Required] public string[] SaveShortcutsForOutputResolutions { get; set; }
|
||||
[Display(Name = "Save Sorting Without Person"), Required] public bool? SaveSortingWithoutPerson { get; set; }
|
||||
[Display(Name = "Skip Not Skip Directories"), Required] public string[] SkipNotSkipDirectories { get; set; }
|
||||
[Display(Name = "Skip Older Than Days"), Required] public int? SkipOlderThanDays { get; set; }
|
||||
[Display(Name = "Skip Person With More Then"), Required] public int? SkipPersonWithMoreThen { get; set; }
|
||||
[Display(Name = "Skip Search"), Required] public bool? SkipSearch { get; set; }
|
||||
[Display(Name = "SortingMaximumPerFaceShould be High"), Required] public int? SortingMaximumPerFaceShouldBeHigh { get; set; }
|
||||
[Display(Name = "Sorting Maximum Per Key"), Required] public int? SortingMaximumPerKey { get; set; }
|
||||
[Display(Name = "Sorting Minimum to use Sigma"), Required] public int? SortingMinimumToUseSigma { get; set; }
|
||||
[Display(Name = "Test Distance Results"), Required] public bool? TestDistanceResults { get; set; }
|
||||
[Display(Name = "Use Filter Tries"), Required] public int? UseFilterTries { get; set; }
|
||||
[Display(Name = "Valid KeyWords to Ignore in Random"), Required] public string[] ValidKeyWordsToIgnoreInRandom { get; set; }
|
||||
[Display(Name = "Valid Resolutions"), Required] public string[] ValidResolutions { get; set; }
|
||||
|
||||
#nullable restore
|
||||
public bool? CheckDFaceAndUpWriteDates { get; set; }
|
||||
public bool? CheckJsonForDistanceResults { get; set; }
|
||||
public string[]? CopyFacesAndSaveFaceLandmarkForOutputResolutions { get; set; }
|
||||
public int? CrossDirectoryMaxItemsInDistanceCollection { get; set; }
|
||||
public bool? DeletePossibleDuplicates { get; set; }
|
||||
public int? DistanceFactor { get; set; }
|
||||
public bool? DistanceMoveUnableToMatch { get; set; }
|
||||
public int? DistancePixelDistanceTolerance { get; set; }
|
||||
public bool? DistanceRenameToMatch { get; set; }
|
||||
public int? EyeThreshold { get; set; }
|
||||
public int? FaceAreaPermyriad { get; set; }
|
||||
public int? FaceConfidencePercent { get; set; }
|
||||
public int? FaceDistanceHiddenImageFactor { get; set; }
|
||||
public int? FaceDistancePermyriad { get; set; }
|
||||
public string? FocusDirectory { get; set; }
|
||||
public string? FocusModel { get; set; }
|
||||
public bool? ForceFaceLastWriteTimeToCreationTime { get; set; }
|
||||
public bool? ForceMetadataLastWriteTimeToCreationTime { get; set; }
|
||||
public bool? ForceResizeLastWriteTimeToCreationTime { get; set; }
|
||||
public string? GenealogicalDataCommunicationFile { get; set; }
|
||||
public string[]? IgnoreExtensions { get; set; }
|
||||
public string[]? JLinks { get; set; }
|
||||
public string[]? LoadOrCreateThenSaveDistanceResultsForOutputResolutions { get; set; }
|
||||
public string[]? LoadOrCreateThenSaveImageFacesResultsForOutputResolutions { get; set; }
|
||||
public bool? LoadPhotoPrismLocations { get; set; }
|
||||
public float? LocationContainerDistanceTolerance { get; set; }
|
||||
public int? LocationDigits { get; set; }
|
||||
public int? LocationFactor { get; set; }
|
||||
public bool? LookForAbandoned { get; set; }
|
||||
public string? MappingDefaultName { get; set; }
|
||||
public bool? MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping { get; set; }
|
||||
public bool? MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping { 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 int? OutputQuality { get; set; }
|
||||
public string[]? OutputResolutions { get; set; }
|
||||
public bool? OverrideForFaceImages { get; set; }
|
||||
public bool? OverrideForFaceLandmarkImages { get; set; }
|
||||
public bool? OverrideForResizeImages { get; set; }
|
||||
public int? PersonBirthdayFirstYear { get; set; }
|
||||
public string? PersonBirthdayFormat { get; set; }
|
||||
public string? PersonCharacters { get; set; }
|
||||
public int? PersonCharactersCopyCount { get; set; }
|
||||
public string? PersonKeyFormat { 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 int? RadomUseBirthdayMinimum { get; set; }
|
||||
public int[]? RangeDaysDeltaTolerance { get; set; }
|
||||
public float[]? RangeDistanceTolerance { get; set; }
|
||||
public float[]? RangeFaceAreaTolerance { get; set; }
|
||||
public float[]? RangeFaceConfidence { get; set; }
|
||||
public float[]? RectangleIntersectMinimums { get; set; }
|
||||
public bool? Reverse { get; set; }
|
||||
public string[]? SaveBlurHashForOutputResolutions { get; set; }
|
||||
public string[]? SaveFaceDistancesForOutputResolutions { get; set; }
|
||||
public string[]? SaveFaceLandmarkForOutputResolutions { get; set; }
|
||||
public string[]? SaveFilteredOriginalImagesFromJLinksForOutputResolutions { get; set; }
|
||||
public bool? SaveFullYearOfRandomFiles { get; set; }
|
||||
public bool? SaveIndividually { get; set; }
|
||||
public string[]? SaveMappedForOutputResolutions { get; set; }
|
||||
public string[]? SavePropertyShortcutsForOutputResolutions { get; set; }
|
||||
public string[]? SaveRandomForOutputResolutions { get; set; }
|
||||
public bool? SaveResizedSubfiles { get; set; }
|
||||
public string[]? SaveShortcutsForOutputResolutions { get; set; }
|
||||
public bool? SaveSortingWithoutPerson { get; set; }
|
||||
public string[]? SkipNotSkipDirectories { get; set; }
|
||||
public int? SkipOlderThanDays { get; set; }
|
||||
public int? SkipPersonWithMoreThen { get; set; }
|
||||
public bool? SkipSearch { get; set; }
|
||||
public int? SortingMaximumPerFaceShouldBeHigh { get; set; }
|
||||
public int? SortingMaximumPerKey { get; set; }
|
||||
public int? SortingMinimumToUseSigma { get; set; }
|
||||
public bool? TestDistanceResults { get; set; }
|
||||
public int? UseFilterTries { get; set; }
|
||||
public string[]? ValidKeyWordsToIgnoreInRandom { get; set; }
|
||||
public string[]? ValidResolutions { get; set; }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
@ -103,154 +98,99 @@ public class Configuration
|
||||
return result;
|
||||
}
|
||||
|
||||
private static Models.Configuration Get(Configuration? configuration)
|
||||
#pragma warning restore csharp_preserve_single_line_statements
|
||||
|
||||
private static Models.Configuration Get(Configuration? configuration, Property.Models.Configuration propertyConfiguration)
|
||||
{
|
||||
Models.Configuration result;
|
||||
if (configuration is null)
|
||||
throw new NullReferenceException(nameof(configuration));
|
||||
if (configuration.CheckDFaceAndUpWriteDates is null)
|
||||
throw new NullReferenceException(nameof(configuration.CheckDFaceAndUpWriteDates));
|
||||
if (configuration.CheckJsonForDistanceResults is null)
|
||||
throw new NullReferenceException(nameof(configuration.CheckJsonForDistanceResults));
|
||||
configuration.CopyFacesAndSaveFaceLandmarkForOutputResolutions ??= Array.Empty<string>();
|
||||
if (configuration.CrossDirectoryMaxItemsInDistanceCollection is null)
|
||||
throw new NullReferenceException(nameof(configuration.CrossDirectoryMaxItemsInDistanceCollection));
|
||||
if (configuration.DeletePossibleDuplicates is null)
|
||||
throw new NullReferenceException(nameof(configuration.DeletePossibleDuplicates));
|
||||
if (configuration.DistanceFactor is null)
|
||||
throw new NullReferenceException(nameof(configuration.DistanceFactor));
|
||||
if (configuration.DistanceMoveUnableToMatch is null)
|
||||
throw new NullReferenceException(nameof(configuration.DistanceMoveUnableToMatch));
|
||||
if (configuration.DistancePixelDistanceTolerance is null)
|
||||
throw new NullReferenceException(nameof(configuration.DistancePixelDistanceTolerance));
|
||||
if (configuration.DistanceRenameToMatch is null)
|
||||
throw new NullReferenceException(nameof(configuration.DistanceRenameToMatch));
|
||||
if (configuration.EyeThreshold is null)
|
||||
throw new NullReferenceException(nameof(configuration.EyeThreshold));
|
||||
if (configuration.FaceAreaPermyriad is null)
|
||||
throw new NullReferenceException(nameof(configuration.FaceAreaPermyriad));
|
||||
if (configuration.FaceDistanceHiddenImageFactor is null)
|
||||
throw new NullReferenceException(nameof(configuration.FaceDistanceHiddenImageFactor));
|
||||
if (configuration.FaceConfidencePercent is null)
|
||||
throw new NullReferenceException(nameof(configuration.FaceConfidencePercent));
|
||||
if (configuration.FaceDistancePermyriad is null)
|
||||
throw new NullReferenceException(nameof(configuration.FaceDistancePermyriad));
|
||||
if (configuration.FocusDirectory is null)
|
||||
throw new NullReferenceException(nameof(configuration.FocusDirectory));
|
||||
if (configuration.FocusModel is null)
|
||||
throw new NullReferenceException(nameof(configuration.FocusModel));
|
||||
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.GenealogicalDataCommunicationFile is null)
|
||||
throw new NullReferenceException(nameof(configuration.GenealogicalDataCommunicationFile));
|
||||
if (configuration.IgnoreExtensions is null)
|
||||
throw new NullReferenceException(nameof(configuration.IgnoreExtensions));
|
||||
configuration.LoadOrCreateThenSaveDistanceResultsForOutputResolutions ??= Array.Empty<string>();
|
||||
configuration.LoadOrCreateThenSaveImageFacesResultsForOutputResolutions ??= Array.Empty<string>();
|
||||
if (configuration.LoadPhotoPrismLocations is null)
|
||||
throw new NullReferenceException(nameof(configuration.LoadPhotoPrismLocations));
|
||||
if (configuration.LocationDigits is null)
|
||||
throw new NullReferenceException(nameof(configuration.LocationDigits));
|
||||
if (configuration.LocationFactor is null)
|
||||
throw new NullReferenceException(nameof(configuration.LocationFactor));
|
||||
if (configuration.LookForAbandoned is null)
|
||||
throw new NullReferenceException(nameof(configuration.LookForAbandoned));
|
||||
if (configuration.MappingDefaultName is null)
|
||||
throw new NullReferenceException(nameof(configuration.MappingDefaultName));
|
||||
if (configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping is null)
|
||||
throw new NullReferenceException(nameof(configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping));
|
||||
if (configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping is null)
|
||||
throw new NullReferenceException(nameof(configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping));
|
||||
if (configuration.MixedYearRelativePaths is null)
|
||||
throw new NullReferenceException(nameof(configuration.MixedYearRelativePaths));
|
||||
if (configuration.NumberOfJitters is null)
|
||||
throw new NullReferenceException(nameof(configuration.NumberOfJitters));
|
||||
if (configuration.NumberOfTimesToUpsample is null)
|
||||
throw new NullReferenceException(nameof(configuration.NumberOfTimesToUpsample));
|
||||
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.PersonBirthdayFirstYear is null)
|
||||
throw new NullReferenceException(nameof(configuration.PersonBirthdayFirstYear));
|
||||
if (configuration.PersonBirthdayFormat is null)
|
||||
throw new NullReferenceException(nameof(configuration.PersonBirthdayFormat));
|
||||
if (configuration.PersonCharacters is null)
|
||||
throw new NullReferenceException(nameof(configuration.PersonCharacters));
|
||||
if (configuration.PersonCharactersCopyCount is null)
|
||||
throw new NullReferenceException(nameof(configuration.PersonCharactersCopyCount));
|
||||
if (configuration.PersonKeyFormat is null)
|
||||
throw new NullReferenceException(nameof(configuration.PersonKeyFormat));
|
||||
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));
|
||||
if (configuration.PropertiesChangedForMetadata is null)
|
||||
throw new NullReferenceException(nameof(configuration.PropertiesChangedForMetadata));
|
||||
if (configuration.PropertiesChangedForResize is null)
|
||||
throw new NullReferenceException(nameof(configuration.PropertiesChangedForResize));
|
||||
if (configuration.RangeDaysDeltaTolerance is null || configuration.RangeDaysDeltaTolerance.Length != 3)
|
||||
throw new NullReferenceException(nameof(configuration.RangeDaysDeltaTolerance));
|
||||
if (configuration.RangeFaceAreaTolerance is null || configuration.RangeFaceAreaTolerance.Length != 3)
|
||||
throw new NullReferenceException(nameof(configuration.RangeFaceAreaTolerance));
|
||||
if (configuration.RangeFaceConfidence is null || configuration.RangeFaceConfidence.Length != 3)
|
||||
throw new NullReferenceException(nameof(configuration.RangeFaceConfidence));
|
||||
if (configuration.RangeDistanceTolerance is null || configuration.RangeDistanceTolerance.Length != 3)
|
||||
throw new NullReferenceException(nameof(configuration.RangeDistanceTolerance));
|
||||
configuration.RectangleIntersectMinimums ??= Array.Empty<float>();
|
||||
if (configuration.Reverse is null)
|
||||
throw new NullReferenceException(nameof(configuration.Reverse));
|
||||
configuration.SaveBlurHashForOutputResolutions ??= Array.Empty<string>();
|
||||
configuration.SaveFaceDistancesForOutputResolutions ??= Array.Empty<string>();
|
||||
configuration.SaveFaceLandmarkForOutputResolutions ??= Array.Empty<string>();
|
||||
if (configuration.SaveFullYearOfRandomFiles is null)
|
||||
throw new NullReferenceException(nameof(configuration.SaveFullYearOfRandomFiles));
|
||||
configuration.SaveMappedForOutputResolutions ??= Array.Empty<string>();
|
||||
configuration.SaveFilteredOriginalImagesFromJLinksForOutputResolutions ??= Array.Empty<string>();
|
||||
if (configuration.SaveIndividually is null)
|
||||
throw new NullReferenceException(nameof(configuration.SaveIndividually));
|
||||
configuration.SavePropertyShortcutsForOutputResolutions ??= Array.Empty<string>();
|
||||
configuration.SaveRandomForOutputResolutions ??= Array.Empty<string>();
|
||||
if (configuration.SaveResizedSubfiles is null)
|
||||
throw new NullReferenceException(nameof(configuration.SaveResizedSubfiles));
|
||||
configuration.SaveShortcutsForOutputResolutions ??= Array.Empty<string>();
|
||||
configuration.SaveShortcutsForOutputResolutions ??= Array.Empty<string>();
|
||||
configuration.SkipNotSkipDirectories ??= Array.Empty<string>();
|
||||
if (configuration.SaveSortingWithoutPerson is null)
|
||||
throw new NullReferenceException(nameof(configuration.SaveSortingWithoutPerson));
|
||||
if (configuration.SkipSearch is null)
|
||||
throw new NullReferenceException(nameof(configuration.SkipSearch));
|
||||
if (configuration.SortingMaximumPerFaceShouldBeHigh is null)
|
||||
throw new NullReferenceException(nameof(configuration.SortingMaximumPerFaceShouldBeHigh));
|
||||
if (configuration.SortingMaximumPerKey is null)
|
||||
throw new NullReferenceException(nameof(configuration.SortingMaximumPerKey));
|
||||
if (configuration.SortingMinimumToUseSigma is null)
|
||||
throw new NullReferenceException(nameof(configuration.SortingMinimumToUseSigma));
|
||||
if (configuration.TestDistanceResults is null)
|
||||
throw new NullReferenceException(nameof(configuration.TestDistanceResults));
|
||||
if (configuration.UseFilterTries is null)
|
||||
throw new NullReferenceException(nameof(configuration.UseFilterTries));
|
||||
if (configuration.ValidKeyWordsToIgnoreInRandom is null)
|
||||
throw new NullReferenceException(nameof(configuration.ValidKeyWordsToIgnoreInRandom));
|
||||
if (configuration.ValidResolutions is null)
|
||||
throw new NullReferenceException(nameof(configuration.ValidResolutions));
|
||||
_ = DateTime.Now.AddDays(-configuration.RangeDaysDeltaTolerance[1]);
|
||||
result = new(configuration.PropertyConfiguration,
|
||||
if (configuration is null) throw new NullReferenceException(nameof(configuration));
|
||||
if (configuration.CheckDFaceAndUpWriteDates is null) throw new NullReferenceException(nameof(configuration.CheckDFaceAndUpWriteDates));
|
||||
if (configuration?.CheckDFaceAndUpWriteDates is null) throw new NullReferenceException(nameof(configuration.CheckDFaceAndUpWriteDates));
|
||||
if (configuration?.CheckJsonForDistanceResults is null) throw new NullReferenceException(nameof(configuration.CheckJsonForDistanceResults));
|
||||
// if (configuration?.CopyFacesAndSaveFaceLandmarkForOutputResolutions is null) throw new NullReferenceException(nameof(configuration.CopyFacesAndSaveFaceLandmarkForOutputResolutions));
|
||||
if (configuration?.CrossDirectoryMaxItemsInDistanceCollection is null) throw new NullReferenceException(nameof(configuration.CrossDirectoryMaxItemsInDistanceCollection));
|
||||
if (configuration?.DeletePossibleDuplicates is null) throw new NullReferenceException(nameof(configuration.DeletePossibleDuplicates));
|
||||
if (configuration?.DistanceFactor is null) throw new NullReferenceException(nameof(configuration.DistanceFactor));
|
||||
if (configuration?.DistanceMoveUnableToMatch is null) throw new NullReferenceException(nameof(configuration.DistanceMoveUnableToMatch));
|
||||
if (configuration?.DistancePixelDistanceTolerance is null) throw new NullReferenceException(nameof(configuration.DistancePixelDistanceTolerance));
|
||||
if (configuration?.DistanceRenameToMatch is null) throw new NullReferenceException(nameof(configuration.DistanceRenameToMatch));
|
||||
if (configuration?.EyeThreshold is null) throw new NullReferenceException(nameof(configuration.EyeThreshold));
|
||||
if (configuration?.FaceAreaPermyriad is null) throw new NullReferenceException(nameof(configuration.FaceAreaPermyriad));
|
||||
if (configuration?.FaceConfidencePercent is null) throw new NullReferenceException(nameof(configuration.FaceConfidencePercent));
|
||||
if (configuration?.FaceDistanceHiddenImageFactor is null) throw new NullReferenceException(nameof(configuration.FaceDistanceHiddenImageFactor));
|
||||
if (configuration?.FaceDistancePermyriad is null) throw new NullReferenceException(nameof(configuration.FaceDistancePermyriad));
|
||||
if (configuration?.FocusDirectory is null) throw new NullReferenceException(nameof(configuration.FocusDirectory));
|
||||
if (configuration?.FocusModel is null) throw new NullReferenceException(nameof(configuration.FocusModel));
|
||||
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?.GenealogicalDataCommunicationFile is null) throw new NullReferenceException(nameof(configuration.GenealogicalDataCommunicationFile));
|
||||
// if (configuration?.IgnoreExtensions is null) throw new NullReferenceException(nameof(configuration.IgnoreExtensions));
|
||||
// if (configuration?.JLinks is null) throw new NullReferenceException(nameof(configuration.JLinks));
|
||||
// if (configuration?.LoadOrCreateThenSaveDistanceResultsForOutputResolutions is null) throw new NullReferenceException(nameof(configuration.LoadOrCreateThenSaveDistanceResultsForOutputResolutions));
|
||||
// if (configuration?.LoadOrCreateThenSaveImageFacesResultsForOutputResolutions is null) throw new NullReferenceException(nameof(configuration.LoadOrCreateThenSaveImageFacesResultsForOutputResolutions));
|
||||
if (configuration?.LoadPhotoPrismLocations is null) throw new NullReferenceException(nameof(configuration.LoadPhotoPrismLocations));
|
||||
// if (configuration?.LocationContainerDistanceTolerance is null) throw new NullReferenceException(nameof(configuration.LocationContainerDistanceTolerance));
|
||||
if (configuration?.LocationDigits is null) throw new NullReferenceException(nameof(configuration.LocationDigits));
|
||||
if (configuration?.LocationFactor is null) throw new NullReferenceException(nameof(configuration.LocationFactor));
|
||||
if (configuration?.LookForAbandoned is null) throw new NullReferenceException(nameof(configuration.LookForAbandoned));
|
||||
if (configuration?.MappingDefaultName is null) throw new NullReferenceException(nameof(configuration.MappingDefaultName));
|
||||
if (configuration?.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping is null) throw new NullReferenceException(nameof(configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping));
|
||||
if (configuration?.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping is null) throw new NullReferenceException(nameof(configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping));
|
||||
// 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?.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?.PersonBirthdayFirstYear is null) throw new NullReferenceException(nameof(configuration.PersonBirthdayFirstYear));
|
||||
if (configuration?.PersonBirthdayFormat is null) throw new NullReferenceException(nameof(configuration.PersonBirthdayFormat));
|
||||
if (configuration?.PersonCharacters is null) throw new NullReferenceException(nameof(configuration.PersonCharacters));
|
||||
if (configuration?.PersonCharactersCopyCount is null) throw new NullReferenceException(nameof(configuration.PersonCharactersCopyCount));
|
||||
if (configuration?.PersonKeyFormat is null) throw new NullReferenceException(nameof(configuration.PersonKeyFormat));
|
||||
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));
|
||||
if (configuration?.PropertiesChangedForMetadata is null) throw new NullReferenceException(nameof(configuration.PropertiesChangedForMetadata));
|
||||
if (configuration?.PropertiesChangedForResize is null) throw new NullReferenceException(nameof(configuration.PropertiesChangedForResize));
|
||||
if (configuration?.RadomUseBirthdayMinimum is null) throw new NullReferenceException(nameof(configuration.RadomUseBirthdayMinimum));
|
||||
// if (configuration?.RangeDaysDeltaTolerance is null) throw new NullReferenceException(nameof(configuration.RangeDaysDeltaTolerance));
|
||||
// if (configuration?.RangeDistanceTolerance is null) throw new NullReferenceException(nameof(configuration.RangeDistanceTolerance));
|
||||
// if (configuration?.RangeFaceAreaTolerance is null) throw new NullReferenceException(nameof(configuration.RangeFaceAreaTolerance));
|
||||
// if (configuration?.RangeFaceConfidence is null) throw new NullReferenceException(nameof(configuration.RangeFaceConfidence));
|
||||
// if (configuration?.RectangleIntersectMinimums is null) throw new NullReferenceException(nameof(configuration.RectangleIntersectMinimums));
|
||||
if (configuration?.Reverse is null) throw new NullReferenceException(nameof(configuration.Reverse));
|
||||
// if (configuration?.SaveBlurHashForOutputResolutions is null) throw new NullReferenceException(nameof(configuration.SaveBlurHashForOutputResolutions));
|
||||
// if (configuration?.SaveFaceDistancesForOutputResolutions is null) throw new NullReferenceException(nameof(configuration.SaveFaceDistancesForOutputResolutions));
|
||||
// if (configuration?.SaveFaceLandmarkForOutputResolutions is null) throw new NullReferenceException(nameof(configuration.SaveFaceLandmarkForOutputResolutions));
|
||||
// if (configuration?.SaveFilteredOriginalImagesFromJLinksForOutputResolutions is null) throw new NullReferenceException(nameof(configuration.SaveFilteredOriginalImagesFromJLinksForOutputResolutions));
|
||||
if (configuration?.SaveFullYearOfRandomFiles is null) throw new NullReferenceException(nameof(configuration.SaveFullYearOfRandomFiles));
|
||||
if (configuration?.SaveIndividually is null) throw new NullReferenceException(nameof(configuration.SaveIndividually));
|
||||
// if (configuration?.SaveMappedForOutputResolutions is null) throw new NullReferenceException(nameof(configuration.SaveMappedForOutputResolutions));
|
||||
// if (configuration?.SavePropertyShortcutsForOutputResolutions is null) throw new NullReferenceException(nameof(configuration.SavePropertyShortcutsForOutputResolutions));
|
||||
// if (configuration?.SaveRandomForOutputResolutions is null) throw new NullReferenceException(nameof(configuration.SaveRandomForOutputResolutions));
|
||||
if (configuration?.SaveResizedSubfiles is null) throw new NullReferenceException(nameof(configuration.SaveResizedSubfiles));
|
||||
// if (configuration?.SaveShortcutsForOutputResolutions is null) throw new NullReferenceException(nameof(configuration.SaveShortcutsForOutputResolutions));
|
||||
if (configuration?.SaveSortingWithoutPerson is null) throw new NullReferenceException(nameof(configuration.SaveSortingWithoutPerson));
|
||||
// if (configuration?.SkipNotSkipDirectories is null) throw new NullReferenceException(nameof(configuration.SkipNotSkipDirectories));
|
||||
// if (configuration?.SkipOlderThanDays is null) throw new NullReferenceException(nameof(configuration.SkipOlderThanDays));
|
||||
// if (configuration?.SkipPersonWithMoreThen is null) throw new NullReferenceException(nameof(configuration.SkipPersonWithMoreThen));
|
||||
if (configuration?.SkipSearch is null) throw new NullReferenceException(nameof(configuration.SkipSearch));
|
||||
if (configuration?.SortingMaximumPerFaceShouldBeHigh is null) throw new NullReferenceException(nameof(configuration.SortingMaximumPerFaceShouldBeHigh));
|
||||
if (configuration?.SortingMaximumPerKey is null) throw new NullReferenceException(nameof(configuration.SortingMaximumPerKey));
|
||||
if (configuration?.SortingMinimumToUseSigma is null) throw new NullReferenceException(nameof(configuration.SortingMinimumToUseSigma));
|
||||
if (configuration?.TestDistanceResults is null) throw new NullReferenceException(nameof(configuration.TestDistanceResults));
|
||||
if (configuration?.UseFilterTries is null) throw new NullReferenceException(nameof(configuration.UseFilterTries));
|
||||
// if (configuration?.ValidKeyWordsToIgnoreInRandom is null) throw new NullReferenceException(nameof(configuration.ValidKeyWordsToIgnoreInRandom));
|
||||
// if (configuration?.ValidResolutions is null) throw new NullReferenceException(nameof(configuration.ValidResolutions));
|
||||
result = new(propertyConfiguration,
|
||||
configuration.CheckDFaceAndUpWriteDates.Value,
|
||||
configuration.CheckJsonForDistanceResults.Value,
|
||||
configuration.CopyFacesAndSaveFaceLandmarkForOutputResolutions,
|
||||
configuration.CopyFacesAndSaveFaceLandmarkForOutputResolutions ?? Array.Empty<string>(),
|
||||
configuration.CrossDirectoryMaxItemsInDistanceCollection.Value,
|
||||
configuration.DeletePossibleDuplicates.Value,
|
||||
configuration.DistanceFactor.Value,
|
||||
@ -268,10 +208,10 @@ public class Configuration
|
||||
configuration.ForceMetadataLastWriteTimeToCreationTime.Value,
|
||||
configuration.ForceResizeLastWriteTimeToCreationTime.Value,
|
||||
configuration.GenealogicalDataCommunicationFile,
|
||||
configuration.IgnoreExtensions,
|
||||
configuration.JLinks,
|
||||
configuration.LoadOrCreateThenSaveDistanceResultsForOutputResolutions,
|
||||
configuration.LoadOrCreateThenSaveImageFacesResultsForOutputResolutions,
|
||||
configuration.IgnoreExtensions ?? Array.Empty<string>(),
|
||||
configuration.JLinks ?? Array.Empty<string>(),
|
||||
configuration.LoadOrCreateThenSaveDistanceResultsForOutputResolutions ?? Array.Empty<string>(),
|
||||
configuration.LoadOrCreateThenSaveImageFacesResultsForOutputResolutions ?? Array.Empty<string>(),
|
||||
configuration.LoadPhotoPrismLocations.Value,
|
||||
configuration.LocationContainerDistanceTolerance,
|
||||
configuration.LocationDigits.Value,
|
||||
@ -280,12 +220,12 @@ public class Configuration
|
||||
configuration.MappingDefaultName,
|
||||
configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping.Value,
|
||||
configuration.MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping.Value,
|
||||
configuration.MixedYearRelativePaths,
|
||||
configuration.MixedYearRelativePaths ?? Array.Empty<string>(),
|
||||
configuration.ModelDirectory,
|
||||
configuration.ModelName,
|
||||
configuration.OutputExtension,
|
||||
configuration.OutputQuality.Value,
|
||||
configuration.OutputResolutions,
|
||||
configuration.OutputResolutions ?? Array.Empty<string>(),
|
||||
configuration.OverrideForFaceImages.Value,
|
||||
configuration.OverrideForFaceLandmarkImages.Value,
|
||||
configuration.OverrideForResizeImages.Value,
|
||||
@ -300,25 +240,26 @@ public class Configuration
|
||||
configuration.PropertiesChangedForIndex.Value,
|
||||
configuration.PropertiesChangedForMetadata.Value,
|
||||
configuration.PropertiesChangedForResize.Value,
|
||||
configuration.RangeDaysDeltaTolerance,
|
||||
configuration.RangeDistanceTolerance,
|
||||
configuration.RangeFaceAreaTolerance,
|
||||
configuration.RangeFaceConfidence,
|
||||
configuration.RectangleIntersectMinimums,
|
||||
configuration.RadomUseBirthdayMinimum.Value,
|
||||
configuration.RangeDaysDeltaTolerance ?? Array.Empty<int>(),
|
||||
configuration.RangeDistanceTolerance ?? Array.Empty<float>(),
|
||||
configuration.RangeFaceAreaTolerance ?? Array.Empty<float>(),
|
||||
configuration.RangeFaceConfidence ?? Array.Empty<float>(),
|
||||
configuration.RectangleIntersectMinimums ?? Array.Empty<float>(),
|
||||
configuration.Reverse.Value,
|
||||
configuration.SaveBlurHashForOutputResolutions,
|
||||
configuration.SaveFaceDistancesForOutputResolutions,
|
||||
configuration.SaveFaceLandmarkForOutputResolutions,
|
||||
configuration.SaveFilteredOriginalImagesFromJLinksForOutputResolutions,
|
||||
configuration.SaveBlurHashForOutputResolutions ?? Array.Empty<string>(),
|
||||
configuration.SaveFaceDistancesForOutputResolutions ?? Array.Empty<string>(),
|
||||
configuration.SaveFaceLandmarkForOutputResolutions ?? Array.Empty<string>(),
|
||||
configuration.SaveFilteredOriginalImagesFromJLinksForOutputResolutions ?? Array.Empty<string>(),
|
||||
configuration.SaveIndividually.Value,
|
||||
configuration.SaveFullYearOfRandomFiles.Value,
|
||||
configuration.SaveMappedForOutputResolutions,
|
||||
configuration.SavePropertyShortcutsForOutputResolutions,
|
||||
configuration.SaveRandomForOutputResolutions,
|
||||
configuration.SaveMappedForOutputResolutions ?? Array.Empty<string>(),
|
||||
configuration.SavePropertyShortcutsForOutputResolutions ?? Array.Empty<string>(),
|
||||
configuration.SaveRandomForOutputResolutions ?? Array.Empty<string>(),
|
||||
configuration.SaveResizedSubfiles.Value,
|
||||
configuration.SaveShortcutsForOutputResolutions,
|
||||
configuration.SaveShortcutsForOutputResolutions ?? Array.Empty<string>(),
|
||||
configuration.SaveSortingWithoutPerson.Value,
|
||||
configuration.SkipNotSkipDirectories,
|
||||
configuration.SkipNotSkipDirectories ?? Array.Empty<string>(),
|
||||
configuration.SkipOlderThanDays,
|
||||
configuration.SkipPersonWithMoreThen,
|
||||
configuration.SkipSearch.Value,
|
||||
@ -327,8 +268,8 @@ public class Configuration
|
||||
configuration.SortingMinimumToUseSigma.Value,
|
||||
configuration.TestDistanceResults.Value,
|
||||
configuration.UseFilterTries.Value,
|
||||
configuration.ValidKeyWordsToIgnoreInRandom,
|
||||
configuration.ValidResolutions);
|
||||
configuration.ValidKeyWordsToIgnoreInRandom ?? Array.Empty<string>(),
|
||||
configuration.ValidResolutions ?? Array.Empty<string>());
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -345,8 +286,7 @@ public class Configuration
|
||||
IConfigurationSection configurationSection = configurationRoot.GetSection(section);
|
||||
configuration = configurationSection.Get<Configuration>();
|
||||
}
|
||||
result = Get(configuration);
|
||||
result.SetAndUpdate(propertyConfiguration, configuration?.NumberOfJitters, configuration?.NumberOfTimesToUpsample, configuration?.ModelName, configuration?.PredictorModelName);
|
||||
result = Get(configuration, propertyConfiguration);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -1,275 +1,85 @@
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace View_by_Distance.Instance.Models;
|
||||
|
||||
public class Configuration
|
||||
{
|
||||
|
||||
protected Property.Models.Configuration _PropertyConfiguration;
|
||||
|
||||
public Property.Models.Configuration PropertyConfiguration => _PropertyConfiguration;
|
||||
|
||||
public bool CheckDFaceAndUpWriteDates { init; get; }
|
||||
public bool CheckJsonForDistanceResults { init; get; }
|
||||
public string[] CopyFacesAndSaveFaceLandmarkForOutputResolutions { init; get; }
|
||||
public int CrossDirectoryMaxItemsInDistanceCollection { init; get; }
|
||||
public int DistanceFactor { init; get; }
|
||||
public bool DistanceMoveUnableToMatch { init; get; }
|
||||
public int DistancePixelDistanceTolerance { init; get; }
|
||||
public bool DistanceRenameToMatch { init; get; }
|
||||
public int EyeThreshold { init; get; }
|
||||
public int FaceAreaPermyriad { init; get; }
|
||||
public int FaceConfidencePercent { init; get; }
|
||||
public int FaceDistanceHiddenImageFactor { init; get; }
|
||||
public int FaceDistancePermyriad { init; get; }
|
||||
public string FocusDirectory { init; get; }
|
||||
public string FocusModel { init; get; }
|
||||
public bool ForceFaceLastWriteTimeToCreationTime { init; get; }
|
||||
public bool ForceMetadataLastWriteTimeToCreationTime { init; get; }
|
||||
public bool ForceResizeLastWriteTimeToCreationTime { init; get; }
|
||||
public string GenealogicalDataCommunicationFile { init; get; }
|
||||
public string[] IgnoreExtensions { init; get; }
|
||||
public string[] JLinks { init; get; }
|
||||
public string[] LoadOrCreateThenSaveDistanceResultsForOutputResolutions { init; get; }
|
||||
public string[] LoadOrCreateThenSaveImageFacesResultsForOutputResolutions { init; get; }
|
||||
public bool LoadPhotoPrismLocations { init; get; }
|
||||
public float? LocationContainerDistanceTolerance { init; get; }
|
||||
public int LocationDigits { init; get; }
|
||||
public int LocationFactor { init; get; }
|
||||
public bool LookForAbandoned { init; get; }
|
||||
public string MappingDefaultName { init; get; }
|
||||
public bool MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping { init; get; }
|
||||
public bool MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping { init; get; }
|
||||
public string[] MixedYearRelativePaths { init; get; }
|
||||
public string ModelDirectory { init; get; }
|
||||
public string ModelName { init; get; }
|
||||
public string OutputExtension { init; get; }
|
||||
public int OutputQuality { init; get; }
|
||||
public string[] OutputResolutions { init; get; }
|
||||
public bool OverrideForFaceImages { init; get; }
|
||||
public bool OverrideForFaceLandmarkImages { init; get; }
|
||||
public bool OverrideForResizeImages { init; get; }
|
||||
public int PersonBirthdayFirstYear { init; get; }
|
||||
public string PersonBirthdayFormat { init; get; }
|
||||
public string PersonCharacters { init; get; }
|
||||
public int PersonCharactersCopyCount { init; get; }
|
||||
public string PersonKeyFormat { init; get; }
|
||||
public string PredictorModelName { init; get; }
|
||||
public bool PropertiesChangedForDistance { init; get; }
|
||||
public bool PropertiesChangedForFaces { init; get; }
|
||||
public bool PropertiesChangedForIndex { init; get; }
|
||||
public bool PropertiesChangedForMetadata { init; get; }
|
||||
public bool PropertiesChangedForResize { init; get; }
|
||||
public int[] RangeDaysDeltaTolerance { init; get; }
|
||||
public float[] RangeDistanceTolerance { init; get; }
|
||||
public float[] RangeFaceAreaTolerance { init; get; }
|
||||
public float[] RangeFaceConfidence { init; get; }
|
||||
public float[] RectangleIntersectMinimums { init; get; }
|
||||
public bool Reverse { init; get; }
|
||||
public string[] SaveBlurHashForOutputResolutions { init; get; }
|
||||
public string[] SaveFaceDistancesForOutputResolutions { init; get; }
|
||||
public string[] SaveFaceLandmarkForOutputResolutions { init; get; }
|
||||
public string[] SaveFilteredOriginalImagesFromJLinksForOutputResolutions { init; get; }
|
||||
public bool SaveFullYearOfRandomFiles { init; get; }
|
||||
public bool SaveIndividually { init; get; }
|
||||
public string[] SaveMappedForOutputResolutions { init; get; }
|
||||
public string[] SavePropertyShortcutsForOutputResolutions { init; get; }
|
||||
public string[] SaveRandomForOutputResolutions { init; get; }
|
||||
public bool SaveResizedSubfiles { init; get; }
|
||||
public string[] SaveShortcutsForOutputResolutions { init; get; }
|
||||
public bool SaveSortingWithoutPerson { init; get; }
|
||||
public string[] SkipNotSkipDirectories { init; get; }
|
||||
public int? SkipOlderThanDays { init; get; }
|
||||
public int? SkipPersonWithMoreThen { init; get; }
|
||||
public bool SkipSearch { init; get; }
|
||||
public int SortingMaximumPerFaceShouldBeHigh { init; get; }
|
||||
public int SortingMaximumPerKey { init; get; }
|
||||
public int SortingMinimumToUseSigma { init; get; }
|
||||
public bool TestDistanceResults { init; get; }
|
||||
public int UseFilterTries { init; get; }
|
||||
public string[] ValidResolutions { init; get; }
|
||||
public string[] ValidKeyWordsToIgnoreInRandom { init; get; }
|
||||
public bool DeletePossibleDuplicates { get; internal set; }
|
||||
|
||||
[JsonConstructor]
|
||||
public Configuration(Property.Models.Configuration propertyConfiguration,
|
||||
bool checkDFaceAndUpWriteDates,
|
||||
bool checkJsonForDistanceResults,
|
||||
string[] copyFacesAndSaveFaceLandmarkForOutputResolutions,
|
||||
int crossDirectoryMaxItemsInDistanceCollection,
|
||||
bool deletePossibleDuplicates,
|
||||
int distanceFactor,
|
||||
bool distanceMoveUnableToMatch,
|
||||
int distancePixelDistanceTolerance,
|
||||
bool distanceRenameToMatch,
|
||||
int eyeThreshold,
|
||||
int faceAreaPermyriad,
|
||||
int faceConfidencePercent,
|
||||
int faceDistanceHiddenImageFactor,
|
||||
int faceDistancePermyriad,
|
||||
string focusDirectory,
|
||||
string focusModel,
|
||||
bool forceFaceLastWriteTimeToCreationTime,
|
||||
bool forceMetadataLastWriteTimeToCreationTime,
|
||||
bool forceResizeLastWriteTimeToCreationTime,
|
||||
string genealogicalDataCommunicationFile,
|
||||
string[] ignoreExtensions,
|
||||
string[] jLinks,
|
||||
string[] loadOrCreateThenSaveDistanceResultsForOutputResolutions,
|
||||
string[] loadOrCreateThenSaveImageFacesResultsForOutputResolutions,
|
||||
bool loadPhotoPrismLocations,
|
||||
float? locationContainerDistanceTolerance,
|
||||
int locationDigits,
|
||||
int locationFactor,
|
||||
bool lookForAbandoned,
|
||||
string mappingDefaultName,
|
||||
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping,
|
||||
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping,
|
||||
string[] mixedYearRelativePaths,
|
||||
string modelDirectory,
|
||||
string modelName,
|
||||
string outputExtension,
|
||||
int outputQuality,
|
||||
string[] outputResolutions,
|
||||
bool overrideForFaceImages,
|
||||
bool overrideForFaceLandmarkImages,
|
||||
bool overrideForResizeImages,
|
||||
int personBirthdayFirstYear,
|
||||
string personBirthdayFormat,
|
||||
string personCharacters,
|
||||
int personCharactersCopyCount,
|
||||
string personKeyFormat,
|
||||
string predictorModelName,
|
||||
bool propertiesChangedForDistance,
|
||||
bool propertiesChangedForFaces,
|
||||
bool propertiesChangedForIndex,
|
||||
bool propertiesChangedForMetadata,
|
||||
bool propertiesChangedForResize,
|
||||
int[] rangeDaysDeltaTolerance,
|
||||
float[] rangeDistanceTolerance,
|
||||
float[] rangeFaceAreaPermyriadTolerance,
|
||||
float[] rangeFaceConfidence,
|
||||
float[] rectangleIntersectMinimums,
|
||||
bool reverse,
|
||||
string[] saveBlurHashForOutputResolutions,
|
||||
string[] saveFaceDistancesForOutputResolutions,
|
||||
string[] saveFaceLandmarkForOutputResolutions,
|
||||
string[] saveFilteredOriginalImagesFromJLinksForOutputResolutions,
|
||||
bool saveIndividually,
|
||||
bool saveFullYearOfRandomFiles,
|
||||
string[] saveMappedForOutputResolutions,
|
||||
string[] savePropertyShortcutsForOutputResolutions,
|
||||
string[] saveRandomForOutputResolutions,
|
||||
bool saveResizedSubfiles,
|
||||
string[] saveShortcutsForOutputResolutions,
|
||||
bool saveSortingWithoutPerson,
|
||||
string[] skipNotSkipDirectories,
|
||||
int? skipOlderThanDays,
|
||||
int? skipPersonWithMoreThen,
|
||||
bool skipSearch,
|
||||
int sortingMaximumPerFaceShouldBeHigh,
|
||||
int sortingMaximumPerKey,
|
||||
int sortingSigma,
|
||||
bool testDistanceResults,
|
||||
int useFilterTries,
|
||||
string[] validKeyWordsToIgnoreInRandom,
|
||||
string[] validResolutions)
|
||||
{
|
||||
_PropertyConfiguration = propertyConfiguration;
|
||||
CheckDFaceAndUpWriteDates = checkDFaceAndUpWriteDates;
|
||||
CheckJsonForDistanceResults = checkJsonForDistanceResults;
|
||||
CopyFacesAndSaveFaceLandmarkForOutputResolutions = copyFacesAndSaveFaceLandmarkForOutputResolutions;
|
||||
CrossDirectoryMaxItemsInDistanceCollection = crossDirectoryMaxItemsInDistanceCollection;
|
||||
DeletePossibleDuplicates = deletePossibleDuplicates;
|
||||
DistanceFactor = distanceFactor;
|
||||
DistanceMoveUnableToMatch = distanceMoveUnableToMatch;
|
||||
DistancePixelDistanceTolerance = distancePixelDistanceTolerance;
|
||||
DistanceRenameToMatch = distanceRenameToMatch;
|
||||
EyeThreshold = eyeThreshold;
|
||||
FaceAreaPermyriad = faceAreaPermyriad;
|
||||
FaceConfidencePercent = faceConfidencePercent;
|
||||
FaceDistanceHiddenImageFactor = faceDistanceHiddenImageFactor;
|
||||
FaceDistancePermyriad = faceDistancePermyriad;
|
||||
FocusDirectory = focusDirectory;
|
||||
FocusModel = focusModel;
|
||||
ForceFaceLastWriteTimeToCreationTime = forceFaceLastWriteTimeToCreationTime;
|
||||
ForceMetadataLastWriteTimeToCreationTime = forceMetadataLastWriteTimeToCreationTime;
|
||||
ForceResizeLastWriteTimeToCreationTime = forceResizeLastWriteTimeToCreationTime;
|
||||
GenealogicalDataCommunicationFile = genealogicalDataCommunicationFile;
|
||||
IgnoreExtensions = ignoreExtensions;
|
||||
JLinks = jLinks;
|
||||
LoadOrCreateThenSaveDistanceResultsForOutputResolutions = loadOrCreateThenSaveDistanceResultsForOutputResolutions;
|
||||
LoadOrCreateThenSaveImageFacesResultsForOutputResolutions = loadOrCreateThenSaveImageFacesResultsForOutputResolutions;
|
||||
LoadPhotoPrismLocations = loadPhotoPrismLocations;
|
||||
LocationContainerDistanceTolerance = locationContainerDistanceTolerance;
|
||||
LocationDigits = locationDigits;
|
||||
LocationFactor = locationFactor;
|
||||
LookForAbandoned = lookForAbandoned;
|
||||
MappingDefaultName = mappingDefaultName;
|
||||
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping;
|
||||
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping;
|
||||
MixedYearRelativePaths = mixedYearRelativePaths;
|
||||
ModelDirectory = modelDirectory;
|
||||
ModelName = modelName;
|
||||
OutputExtension = outputExtension;
|
||||
OutputQuality = outputQuality;
|
||||
OutputResolutions = outputResolutions;
|
||||
OverrideForFaceImages = overrideForFaceImages;
|
||||
OverrideForFaceLandmarkImages = overrideForFaceLandmarkImages;
|
||||
OverrideForResizeImages = overrideForResizeImages;
|
||||
PersonBirthdayFirstYear = personBirthdayFirstYear;
|
||||
PersonBirthdayFormat = personBirthdayFormat;
|
||||
PersonCharacters = personCharacters;
|
||||
PersonCharactersCopyCount = personCharactersCopyCount;
|
||||
PersonKeyFormat = personKeyFormat;
|
||||
PredictorModelName = predictorModelName;
|
||||
PropertiesChangedForDistance = propertiesChangedForDistance;
|
||||
PropertiesChangedForFaces = propertiesChangedForFaces;
|
||||
PropertiesChangedForIndex = propertiesChangedForIndex;
|
||||
PropertiesChangedForMetadata = propertiesChangedForMetadata;
|
||||
PropertiesChangedForResize = propertiesChangedForResize;
|
||||
RangeDaysDeltaTolerance = rangeDaysDeltaTolerance;
|
||||
RangeDistanceTolerance = rangeDistanceTolerance;
|
||||
RangeFaceAreaTolerance = rangeFaceAreaPermyriadTolerance;
|
||||
RangeFaceConfidence = rangeFaceConfidence;
|
||||
RectangleIntersectMinimums = rectangleIntersectMinimums;
|
||||
Reverse = reverse;
|
||||
SaveBlurHashForOutputResolutions = saveBlurHashForOutputResolutions;
|
||||
SaveFaceDistancesForOutputResolutions = saveFaceDistancesForOutputResolutions;
|
||||
SaveFaceLandmarkForOutputResolutions = saveFaceLandmarkForOutputResolutions;
|
||||
SaveFilteredOriginalImagesFromJLinksForOutputResolutions = saveFilteredOriginalImagesFromJLinksForOutputResolutions;
|
||||
SaveFullYearOfRandomFiles = saveFullYearOfRandomFiles;
|
||||
SaveIndividually = saveIndividually;
|
||||
SaveMappedForOutputResolutions = saveMappedForOutputResolutions;
|
||||
SavePropertyShortcutsForOutputResolutions = savePropertyShortcutsForOutputResolutions;
|
||||
SaveRandomForOutputResolutions = saveRandomForOutputResolutions;
|
||||
SaveResizedSubfiles = saveResizedSubfiles;
|
||||
SaveShortcutsForOutputResolutions = saveShortcutsForOutputResolutions;
|
||||
SaveSortingWithoutPerson = saveSortingWithoutPerson;
|
||||
SkipNotSkipDirectories = skipNotSkipDirectories;
|
||||
SkipOlderThanDays = skipOlderThanDays;
|
||||
SkipPersonWithMoreThen = skipPersonWithMoreThen;
|
||||
SkipSearch = skipSearch;
|
||||
SortingMaximumPerFaceShouldBeHigh = sortingMaximumPerFaceShouldBeHigh;
|
||||
SortingMaximumPerKey = sortingMaximumPerKey;
|
||||
SortingMinimumToUseSigma = sortingSigma;
|
||||
TestDistanceResults = testDistanceResults;
|
||||
UseFilterTries = useFilterTries;
|
||||
ValidKeyWordsToIgnoreInRandom = validKeyWordsToIgnoreInRandom;
|
||||
ValidResolutions = validResolutions;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true });
|
||||
return result;
|
||||
}
|
||||
|
||||
public void SetAndUpdate(Property.Models.Configuration configuration, int? numberOfJitters, int? numberOfTimesToUpsample, string? modelName, string? predictorModelName)
|
||||
{
|
||||
_PropertyConfiguration = configuration;
|
||||
_PropertyConfiguration.Update(numberOfJitters, numberOfTimesToUpsample, modelName, predictorModelName);
|
||||
}
|
||||
|
||||
}
|
||||
public record Configuration(Property.Models.Configuration PropertyConfiguration,
|
||||
bool CheckDFaceAndUpWriteDates,
|
||||
bool CheckJsonForDistanceResults,
|
||||
string[] CopyFacesAndSaveFaceLandmarkForOutputResolutions,
|
||||
int CrossDirectoryMaxItemsInDistanceCollection,
|
||||
bool DeletePossibleDuplicates,
|
||||
int DistanceFactor,
|
||||
bool DistanceMoveUnableToMatch,
|
||||
int DistancePixelDistanceTolerance,
|
||||
bool DistanceRenameToMatch,
|
||||
int EyeThreshold,
|
||||
int FaceAreaPermyriad,
|
||||
int FaceConfidencePercent,
|
||||
int FaceDistanceHiddenImageFactor,
|
||||
int FaceDistancePermyriad,
|
||||
string FocusDirectory,
|
||||
string FocusModel,
|
||||
bool ForceFaceLastWriteTimeToCreationTime,
|
||||
bool ForceMetadataLastWriteTimeToCreationTime,
|
||||
bool ForceResizeLastWriteTimeToCreationTime,
|
||||
string GenealogicalDataCommunicationFile,
|
||||
string[] IgnoreExtensions,
|
||||
string[] JLinks,
|
||||
string[] LoadOrCreateThenSaveDistanceResultsForOutputResolutions,
|
||||
string[] LoadOrCreateThenSaveImageFacesResultsForOutputResolutions,
|
||||
bool LoadPhotoPrismLocations,
|
||||
float? LocationContainerDistanceTolerance,
|
||||
int LocationDigits,
|
||||
int LocationFactor,
|
||||
bool LookForAbandoned,
|
||||
string MappingDefaultName,
|
||||
bool MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping,
|
||||
bool MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping,
|
||||
string[] MixedYearRelativePaths,
|
||||
string ModelDirectory,
|
||||
string ModelName,
|
||||
string OutputExtension,
|
||||
int OutputQuality,
|
||||
string[] OutputResolutions,
|
||||
bool OverrideForFaceImages,
|
||||
bool OverrideForFaceLandmarkImages,
|
||||
bool OverrideForResizeImages,
|
||||
int PersonBirthdayFirstYear,
|
||||
string PersonBirthdayFormat,
|
||||
string PersonCharacters,
|
||||
int PersonCharactersCopyCount,
|
||||
string PersonKeyFormat,
|
||||
string PredictorModelName,
|
||||
bool PropertiesChangedForDistance,
|
||||
bool PropertiesChangedForFaces,
|
||||
bool PropertiesChangedForIndex,
|
||||
bool PropertiesChangedForMetadata,
|
||||
bool PropertiesChangedForResize,
|
||||
int RadomUseBirthdayMinimum,
|
||||
int[] RangeDaysDeltaTolerance,
|
||||
float[] RangeDistanceTolerance,
|
||||
float[] RangeFaceAreaPermyriadTolerance,
|
||||
float[] RangeFaceConfidence,
|
||||
float[] RectangleIntersectMinimums,
|
||||
bool Reverse,
|
||||
string[] SaveBlurHashForOutputResolutions,
|
||||
string[] SaveFaceDistancesForOutputResolutions,
|
||||
string[] SaveFaceLandmarkForOutputResolutions,
|
||||
string[] SaveFilteredOriginalImagesFromJLinksForOutputResolutions,
|
||||
bool SaveIndividually,
|
||||
bool SaveFullYearOfRandomFiles,
|
||||
string[] SaveMappedForOutputResolutions,
|
||||
string[] SavePropertyShortcutsForOutputResolutions,
|
||||
string[] SaveRandomForOutputResolutions,
|
||||
bool SaveResizedSubfiles,
|
||||
string[] SaveShortcutsForOutputResolutions,
|
||||
bool SaveSortingWithoutPerson,
|
||||
string[] SkipNotSkipDirectories,
|
||||
int? SkipOlderThanDays,
|
||||
int? SkipPersonWithMoreThen,
|
||||
bool SkipSearch,
|
||||
int SortingMaximumPerFaceShouldBeHigh,
|
||||
int SortingMaximumPerKey,
|
||||
int SortingMinimumToUseSigma,
|
||||
bool TestDistanceResults,
|
||||
int UseFilterTries,
|
||||
string[] ValidKeyWordsToIgnoreInRandom,
|
||||
string[] ValidResolutions);
|
@ -58,7 +58,7 @@ internal class F_Random
|
||||
return new(results);
|
||||
}
|
||||
|
||||
internal void Random(Property.Models.Configuration configuration, string[] validKeyWordsToIgnoreInRandom, string outputResolution, ReadOnlyDictionary<long, List<int>> personKeyToIds, ReadOnlyCollection<Shared.Models.Mapping> mappingCollection)
|
||||
internal void Random(Property.Models.Configuration configuration, int radomUseBirthdayMinimum, string[] validKeyWordsToIgnoreInRandom, string outputResolution, ReadOnlyDictionary<long, List<int>> personKeyToIds, ReadOnlyCollection<Shared.Models.Mapping> mappingCollection)
|
||||
{
|
||||
string key;
|
||||
string json;
|
||||
@ -92,7 +92,7 @@ internal class F_Random
|
||||
{
|
||||
random = new(i);
|
||||
key = dateTime.AddDays(i).ToString(dateFormat);
|
||||
if (dayToRelativePaths.TryGetValue(key, out collection) && collection.Count > 100)
|
||||
if (dayToRelativePaths.TryGetValue(key, out collection) && collection.Count > radomUseBirthdayMinimum)
|
||||
collection = (from l in collection orderby random.NextDouble() select l).ToList();
|
||||
else
|
||||
collection = (from l in relativePaths orderby random.NextDouble() select l).ToList();
|
||||
|
Reference in New Issue
Block a user