... but by oldest person and distinct
This commit is contained in:
parent
331d42685a
commit
a6168f5976
@ -130,7 +130,7 @@ public partial class DlibDotNet
|
|||||||
if (rootResultsDirectory is null)
|
if (rootResultsDirectory is null)
|
||||||
throw new Exception();
|
throw new Exception();
|
||||||
Storage storage = new(rootDirectory, rootResultsDirectory, peopleRootDirectory);
|
Storage storage = new(rootDirectory, rootResultsDirectory, peopleRootDirectory);
|
||||||
personContainers = Shared.Models.Stateless.Methods.IPersonContainer.GetPersonContainers(storage, configuration.PersonBirthdayFormat, configuration.JuliePhares, _Faces.FileNameExtension);
|
personContainers = Shared.Models.Stateless.Methods.IPersonContainer.GetPersonContainers(storage, configuration.PersonBirthdayFormat, _Faces.FileNameExtension);
|
||||||
}
|
}
|
||||||
if (!isSilent && configuration.TestDistanceResults)
|
if (!isSilent && configuration.TestDistanceResults)
|
||||||
{
|
{
|
||||||
@ -944,7 +944,7 @@ public partial class DlibDotNet
|
|||||||
if (_Configuration.MappingSaveNotMapped)
|
if (_Configuration.MappingSaveNotMapped)
|
||||||
mapLogic.SaveNotMappedTicks();
|
mapLogic.SaveNotMappedTicks();
|
||||||
if (_Configuration.SaveResizedImagesByPersonKeyFormattedForOutputResolutions.Contains(outputResolution))
|
if (_Configuration.SaveResizedImagesByPersonKeyFormattedForOutputResolutions.Contains(outputResolution))
|
||||||
mapLogic.SaveResizedImagesByPersonKeyFormatted(_Configuration.JuliePhares, mappingCollection, totalNotMapped);
|
mapLogic.SaveResizedImagesByPersonKeyFormatted(_Configuration.JLinks, a2PeopleSingletonDirectory, personContainers, mappingCollection, totalNotMapped);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Container? AreAllSameEndsWith(string argZero, Container[] containers)
|
private static Container? AreAllSameEndsWith(string argZero, Container[] containers)
|
||||||
|
@ -27,7 +27,7 @@ public class Configuration
|
|||||||
[Display(Name = "Force Resize Last Write Time to Creation Time"), Required] public bool? ForceResizeLastWriteTimeToCreationTime { get; set; }
|
[Display(Name = "Force Resize Last Write Time to Creation Time"), Required] public bool? ForceResizeLastWriteTimeToCreationTime { get; set; }
|
||||||
[Display(Name = "Ignore Extensions"), Required] public string[] IgnoreExtensions { get; set; }
|
[Display(Name = "Ignore Extensions"), Required] public string[] IgnoreExtensions { get; set; }
|
||||||
[Display(Name = "Ignore Relative Paths"), Required] public string[] IgnoreRelativePaths { get; set; }
|
[Display(Name = "Ignore Relative Paths"), Required] public string[] IgnoreRelativePaths { get; set; }
|
||||||
[Display(Name = "Julie Phares Copy Birthdays"), Required] public string[] JuliePhares { 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 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 Or Create Then Save Image Faces Results"), Required] public string[] LoadOrCreateThenSaveImageFacesResultsForOutputResolutions { get; set; }
|
||||||
[Display(Name = "Load Or Create Then Save Index"), Required] public bool? LoadOrCreateThenSaveIndex { get; set; }
|
[Display(Name = "Load Or Create Then Save Index"), Required] public bool? LoadOrCreateThenSaveIndex { get; set; }
|
||||||
@ -235,7 +235,7 @@ public class Configuration
|
|||||||
configuration.ForceResizeLastWriteTimeToCreationTime.Value,
|
configuration.ForceResizeLastWriteTimeToCreationTime.Value,
|
||||||
configuration.IgnoreExtensions,
|
configuration.IgnoreExtensions,
|
||||||
configuration.IgnoreRelativePaths,
|
configuration.IgnoreRelativePaths,
|
||||||
configuration.JuliePhares,
|
configuration.JLinks,
|
||||||
configuration.LoadOrCreateThenSaveDistanceResultsForOutputResolutions,
|
configuration.LoadOrCreateThenSaveDistanceResultsForOutputResolutions,
|
||||||
configuration.LoadOrCreateThenSaveImageFacesResultsForOutputResolutions,
|
configuration.LoadOrCreateThenSaveImageFacesResultsForOutputResolutions,
|
||||||
configuration.LoadOrCreateThenSaveIndex.Value,
|
configuration.LoadOrCreateThenSaveIndex.Value,
|
||||||
|
@ -26,7 +26,7 @@ public class Configuration
|
|||||||
public bool ForceResizeLastWriteTimeToCreationTime { init; get; }
|
public bool ForceResizeLastWriteTimeToCreationTime { init; get; }
|
||||||
public string[] IgnoreExtensions { init; get; }
|
public string[] IgnoreExtensions { init; get; }
|
||||||
public string[] IgnoreRelativePaths { init; get; }
|
public string[] IgnoreRelativePaths { init; get; }
|
||||||
public string[] JuliePhares { init; get; }
|
public string[] JLinks { init; get; }
|
||||||
public string[] LoadOrCreateThenSaveDistanceResultsForOutputResolutions { init; get; }
|
public string[] LoadOrCreateThenSaveDistanceResultsForOutputResolutions { init; get; }
|
||||||
public string[] LoadOrCreateThenSaveImageFacesResultsForOutputResolutions { init; get; }
|
public string[] LoadOrCreateThenSaveImageFacesResultsForOutputResolutions { init; get; }
|
||||||
public bool LoadOrCreateThenSaveIndex { init; get; }
|
public bool LoadOrCreateThenSaveIndex { init; get; }
|
||||||
@ -94,7 +94,7 @@ public class Configuration
|
|||||||
bool forceResizeLastWriteTimeToCreationTime,
|
bool forceResizeLastWriteTimeToCreationTime,
|
||||||
string[] ignoreExtensions,
|
string[] ignoreExtensions,
|
||||||
string[] ignoreRelativePaths,
|
string[] ignoreRelativePaths,
|
||||||
string[] juliePhares,
|
string[] jLinks,
|
||||||
string[] loadOrCreateThenSaveDistanceResultsForOutputResolutions,
|
string[] loadOrCreateThenSaveDistanceResultsForOutputResolutions,
|
||||||
string[] loadOrCreateThenSaveImageFacesResultsForOutputResolutions,
|
string[] loadOrCreateThenSaveImageFacesResultsForOutputResolutions,
|
||||||
bool loadOrCreateThenSaveIndex,
|
bool loadOrCreateThenSaveIndex,
|
||||||
@ -161,7 +161,7 @@ public class Configuration
|
|||||||
ForceResizeLastWriteTimeToCreationTime = forceResizeLastWriteTimeToCreationTime;
|
ForceResizeLastWriteTimeToCreationTime = forceResizeLastWriteTimeToCreationTime;
|
||||||
IgnoreExtensions = ignoreExtensions;
|
IgnoreExtensions = ignoreExtensions;
|
||||||
IgnoreRelativePaths = ignoreRelativePaths;
|
IgnoreRelativePaths = ignoreRelativePaths;
|
||||||
JuliePhares = juliePhares;
|
JLinks = jLinks;
|
||||||
LoadOrCreateThenSaveDistanceResultsForOutputResolutions = loadOrCreateThenSaveDistanceResultsForOutputResolutions;
|
LoadOrCreateThenSaveDistanceResultsForOutputResolutions = loadOrCreateThenSaveDistanceResultsForOutputResolutions;
|
||||||
LoadOrCreateThenSaveImageFacesResultsForOutputResolutions = loadOrCreateThenSaveImageFacesResultsForOutputResolutions;
|
LoadOrCreateThenSaveImageFacesResultsForOutputResolutions = loadOrCreateThenSaveImageFacesResultsForOutputResolutions;
|
||||||
LoadOrCreateThenSaveIndex = loadOrCreateThenSaveIndex;
|
LoadOrCreateThenSaveIndex = loadOrCreateThenSaveIndex;
|
||||||
|
@ -93,9 +93,8 @@ public class G2_Identify : Shared.Models.Properties.IIdentify, IIdentify
|
|||||||
string rootResultsDirectory = Path.GetDirectoryName(Path.GetDirectoryName(peopleRootDirectory));
|
string rootResultsDirectory = Path.GetDirectoryName(Path.GetDirectoryName(peopleRootDirectory));
|
||||||
if (rootResultsDirectory is null)
|
if (rootResultsDirectory is null)
|
||||||
throw new Exception();
|
throw new Exception();
|
||||||
string[] verifyPersonKeyFormattedCollection = Array.Empty<string>();
|
|
||||||
Storage storage = new(rootDirectory, rootResultsDirectory, peopleRootDirectory);
|
Storage storage = new(rootDirectory, rootResultsDirectory, peopleRootDirectory);
|
||||||
PersonContainer[] personContainers = Shared.Models.Stateless.Methods.IPersonContainer.GetPersonContainers(storage, _Configuration.PersonBirthdayFormat, verifyPersonKeyFormattedCollection, facesFileNameExtension);
|
PersonContainer[] personContainers = Shared.Models.Stateless.Methods.IPersonContainer.GetPersonContainers(storage, _Configuration.PersonBirthdayFormat, facesFileNameExtension);
|
||||||
string[] peopleBirthDates = (from l in personContainers select Shared.Models.Stateless.Methods.IPersonBirthday.GetFormatted(_Configuration.PersonBirthdayFormat, l.Person.Birthday)).ToArray();
|
string[] peopleBirthDates = (from l in personContainers select Shared.Models.Stateless.Methods.IPersonBirthday.GetFormatted(_Configuration.PersonBirthdayFormat, l.Person.Birthday)).ToArray();
|
||||||
Dictionary<string, string[]> sourceKeyValuePairs = JsonSerializer.Deserialize<Dictionary<string, string[]>>(json);
|
Dictionary<string, string[]> sourceKeyValuePairs = JsonSerializer.Deserialize<Dictionary<string, string[]>>(json);
|
||||||
foreach (KeyValuePair<string, string[]> keyValuePair in sourceKeyValuePairs)
|
foreach (KeyValuePair<string, string[]> keyValuePair in sourceKeyValuePairs)
|
||||||
|
@ -126,63 +126,8 @@
|
|||||||
".gif",
|
".gif",
|
||||||
".GIF"
|
".GIF"
|
||||||
],
|
],
|
||||||
"JuliePhares": [
|
"JLinks": [
|
||||||
"1500-01-16_00",
|
"Julie"
|
||||||
"1500-01-19_00",
|
|
||||||
"1500-01-20_00",
|
|
||||||
"1500-01-21_00",
|
|
||||||
"1500-01-25_00",
|
|
||||||
"1500-01-26_00",
|
|
||||||
"1500-01-27_00",
|
|
||||||
"1500-02-13_00",
|
|
||||||
"1500-02-17_00",
|
|
||||||
"1500-02-24_00",
|
|
||||||
"1500-02-25_00",
|
|
||||||
"1500-04-03_00",
|
|
||||||
"1500-04-06_00",
|
|
||||||
"1500-04-19_00",
|
|
||||||
"1500-05-03_00",
|
|
||||||
"1500-05-18_00",
|
|
||||||
"1500-05-28_00",
|
|
||||||
"1500-06-16_00",
|
|
||||||
"1500-06-26_00",
|
|
||||||
"1500-06-27_00",
|
|
||||||
"1500-07-07_00",
|
|
||||||
"1500-07-16_00",
|
|
||||||
"1720-09-30_05",
|
|
||||||
"1500-07-26_00",
|
|
||||||
"1500-08-03_00",
|
|
||||||
"1500-08-23_00",
|
|
||||||
"1500-08-24_00",
|
|
||||||
"1500-09-16_00",
|
|
||||||
"1500-09-21_00",
|
|
||||||
"1500-09-28_00",
|
|
||||||
"1500-10-14_00",
|
|
||||||
"1500-11-07_00",
|
|
||||||
"1500-11-09_00",
|
|
||||||
"1720-09-28_20",
|
|
||||||
"1501-01-08_00",
|
|
||||||
"1501-01-12_00",
|
|
||||||
"1501-01-13_00",
|
|
||||||
"1501-01-30_00",
|
|
||||||
"1501-03-09_00",
|
|
||||||
"1501-03-14_00",
|
|
||||||
"1501-03-22_00",
|
|
||||||
"1501-04-07_00",
|
|
||||||
"1501-04-10_00",
|
|
||||||
"1501-04-19_00",
|
|
||||||
"1501-05-06_00",
|
|
||||||
"1956-09-19_00",
|
|
||||||
"2012-09-17_00",
|
|
||||||
"1998-05-21_00",
|
|
||||||
"1960-03-01_00",
|
|
||||||
"1976-03-08_00",
|
|
||||||
"2007-09-07_00",
|
|
||||||
"2000-04-07_00",
|
|
||||||
"1980-01-17_00",
|
|
||||||
"1958-01-30_00",
|
|
||||||
"1976-01-05_00",
|
|
||||||
"1982-05-02_00"
|
|
||||||
],
|
],
|
||||||
"LoadOrCreateThenSaveDirectoryDistanceResultsForOutputResolutions": [
|
"LoadOrCreateThenSaveDirectoryDistanceResultsForOutputResolutions": [
|
||||||
"7680 x 4320"
|
"7680 x 4320"
|
||||||
@ -201,8 +146,7 @@
|
|||||||
"176 x 176",
|
"176 x 176",
|
||||||
"256 x 256"
|
"256 x 256"
|
||||||
],
|
],
|
||||||
"SaveResizedImagesByPersonKeyFormattedForOutputResolutions": [
|
"SaveResizedImagesByPersonKeyFormattedForOutputResolutions": [],
|
||||||
],
|
|
||||||
"ValidImageFormatExtensions": [
|
"ValidImageFormatExtensions": [
|
||||||
".bmp",
|
".bmp",
|
||||||
".BMP",
|
".BMP",
|
||||||
@ -546,7 +490,7 @@
|
|||||||
"Trip to Colorado 10 2002",
|
"Trip to Colorado 10 2002",
|
||||||
"Trip to Colorado June 2002",
|
"Trip to Colorado June 2002",
|
||||||
"Tub 2002",
|
"Tub 2002",
|
||||||
"Vericruz 2011",
|
"Vericruz 2011",
|
||||||
"zzz =2005.1 Spring Tracy Pictures",
|
"zzz =2005.1 Spring Tracy Pictures",
|
||||||
"zzz =2005.2 Summer Tracy Pictures",
|
"zzz =2005.2 Summer Tracy Pictures",
|
||||||
"zzz =2005.3 Fall Tracy Pictures",
|
"zzz =2005.3 Fall Tracy Pictures",
|
||||||
|
@ -124,63 +124,8 @@
|
|||||||
".gif",
|
".gif",
|
||||||
".GIF"
|
".GIF"
|
||||||
],
|
],
|
||||||
"JuliePhares": [
|
"JLinks": [
|
||||||
"1500-01-16_00",
|
"Julie"
|
||||||
"1500-01-19_00",
|
|
||||||
"1500-01-20_00",
|
|
||||||
"1500-01-21_00",
|
|
||||||
"1500-01-25_00",
|
|
||||||
"1500-01-26_00",
|
|
||||||
"1500-01-27_00",
|
|
||||||
"1500-02-13_00",
|
|
||||||
"1500-02-17_00",
|
|
||||||
"1500-02-24_00",
|
|
||||||
"1500-02-25_00",
|
|
||||||
"1500-04-03_00",
|
|
||||||
"1500-04-06_00",
|
|
||||||
"1500-04-19_00",
|
|
||||||
"1500-05-03_00",
|
|
||||||
"1500-05-18_00",
|
|
||||||
"1500-05-28_00",
|
|
||||||
"1500-06-16_00",
|
|
||||||
"1500-06-26_00",
|
|
||||||
"1500-06-27_00",
|
|
||||||
"1500-07-07_00",
|
|
||||||
"1500-07-16_00",
|
|
||||||
"1720-09-30_05",
|
|
||||||
"1500-07-26_00",
|
|
||||||
"1500-08-03_00",
|
|
||||||
"1500-08-23_00",
|
|
||||||
"1500-08-24_00",
|
|
||||||
"1500-09-16_00",
|
|
||||||
"1500-09-21_00",
|
|
||||||
"1500-09-28_00",
|
|
||||||
"1500-10-14_00",
|
|
||||||
"1500-11-07_00",
|
|
||||||
"1500-11-09_00",
|
|
||||||
"1720-09-28_20",
|
|
||||||
"1501-01-08_00",
|
|
||||||
"1501-01-12_00",
|
|
||||||
"1501-01-13_00",
|
|
||||||
"1501-01-30_00",
|
|
||||||
"1501-03-09_00",
|
|
||||||
"1501-03-14_00",
|
|
||||||
"1501-03-22_00",
|
|
||||||
"1501-04-07_00",
|
|
||||||
"1501-04-10_00",
|
|
||||||
"1501-04-19_00",
|
|
||||||
"1501-05-06_00",
|
|
||||||
"1956-09-19_00",
|
|
||||||
"2012-09-17_00",
|
|
||||||
"1998-05-21_00",
|
|
||||||
"1960-03-01_00",
|
|
||||||
"1976-03-08_00",
|
|
||||||
"2007-09-07_00",
|
|
||||||
"2000-04-07_00",
|
|
||||||
"1980-01-17_00",
|
|
||||||
"1958-01-30_00",
|
|
||||||
"1976-01-05_00",
|
|
||||||
"1982-05-02_00"
|
|
||||||
],
|
],
|
||||||
"LoadOrCreateThenSaveDistanceResultsForOutputResolutions": [
|
"LoadOrCreateThenSaveDistanceResultsForOutputResolutions": [
|
||||||
"1920 x 1080"
|
"1920 x 1080"
|
||||||
|
@ -704,17 +704,73 @@ public class MapLogic
|
|||||||
SaveContainers(totalNotMapped, updated, saveContainers);
|
SaveContainers(totalNotMapped, updated, saveContainers);
|
||||||
}
|
}
|
||||||
|
|
||||||
private (FileHolder, string, string, string, string)[] GetCollection(Mapping[] mappingCollection)
|
private List<(string, PersonContainer)> GetPersonContainers(string[] jLinks, string a2PeopleSingletonDirectory, PersonContainer[] personContainers)
|
||||||
{
|
{
|
||||||
if (_Configuration is null)
|
if (_Configuration is null)
|
||||||
throw new NullReferenceException(nameof(_Configuration));
|
throw new NullReferenceException(nameof(_Configuration));
|
||||||
(FileHolder, string, string, string, string)[] results;
|
List<(string, PersonContainer)> results = new();
|
||||||
|
string[] files;
|
||||||
|
long personKey;
|
||||||
|
const int zero = 0;
|
||||||
|
string[] directories;
|
||||||
|
string checkDirectory;
|
||||||
|
string personKeyFormatted;
|
||||||
|
string displayDirectoryName;
|
||||||
|
PersonContainer[] collection;
|
||||||
|
PersonBirthday? personBirthday;
|
||||||
|
WindowsShortcut windowsShortcut;
|
||||||
|
foreach (string directoryName in jLinks)
|
||||||
|
{
|
||||||
|
checkDirectory = Path.Combine(a2PeopleSingletonDirectory, directoryName);
|
||||||
|
if (!Directory.Exists(checkDirectory))
|
||||||
|
continue;
|
||||||
|
files = Directory.GetFiles(checkDirectory, "*.lnk", SearchOption.TopDirectoryOnly);
|
||||||
|
foreach (string file in files)
|
||||||
|
{
|
||||||
|
windowsShortcut = WindowsShortcut.Load(file);
|
||||||
|
if (windowsShortcut.Path is null || !Directory.Exists(windowsShortcut.Path))
|
||||||
|
continue;
|
||||||
|
directories = Directory.GetDirectories(windowsShortcut.Path, "*", SearchOption.TopDirectoryOnly);
|
||||||
|
foreach (string directory in directories)
|
||||||
|
{
|
||||||
|
personKeyFormatted = Path.GetFileName(directory);
|
||||||
|
personBirthday = IPersonBirthday.GetPersonBirthday(_Configuration.PersonBirthdayFormat, personKeyFormatted);
|
||||||
|
if (personBirthday is null)
|
||||||
|
continue;
|
||||||
|
personKey = personBirthday.Value.Ticks;
|
||||||
|
collection = (from l in personContainers where l.Key == personKey && l.ApproximateYears.HasValue select l).ToArray();
|
||||||
|
if (!collection.Any())
|
||||||
|
continue;
|
||||||
|
displayDirectoryName = Path.Combine(checkDirectory, personKeyFormatted, Path.GetFileNameWithoutExtension(file));
|
||||||
|
if (!Directory.Exists(displayDirectoryName))
|
||||||
|
_ = Directory.CreateDirectory(displayDirectoryName);
|
||||||
|
results.Add(new(personKeyFormatted, collection[zero]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
private string[] GetPersonKeyFormattedCollection(string[] jLinks, string a2PeopleSingletonDirectory, PersonContainer[] personContainers)
|
||||||
|
{
|
||||||
|
string[] results;
|
||||||
|
List<(string PersonKeyFormatted, PersonContainer PersonContainer)> collection = GetPersonContainers(jLinks, a2PeopleSingletonDirectory, personContainers);
|
||||||
|
results = (from l in collection orderby l.PersonKeyFormatted select l.PersonKeyFormatted).ToArray();
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
private (int, FileHolder, int, string, string, string, string)[] GetCollection(string[] jLinks, string a2PeopleSingletonDirectory, PersonContainer[] personContainers, Mapping[] mappingCollection)
|
||||||
|
{
|
||||||
|
if (_Configuration is null)
|
||||||
|
throw new NullReferenceException(nameof(_Configuration));
|
||||||
|
(int, FileHolder, int, string, string, string, string)[] results;
|
||||||
string checkFile;
|
string checkFile;
|
||||||
string directory;
|
string directory;
|
||||||
string? directoryName;
|
string? directoryName;
|
||||||
string personDirectory;
|
string personDirectory;
|
||||||
string personKeyFormatted;
|
string personKeyFormatted;
|
||||||
List<(FileHolder ResizedFileHolder, string PersonKeyFormatted, string CheckFile, string Directory, string PersonDirectory)> collection = new();
|
string[] personKeyFormattedCollection = GetPersonKeyFormattedCollection(jLinks, a2PeopleSingletonDirectory, personContainers);
|
||||||
|
List<(int Id, FileHolder ResizedFileHolder, int ApproximateYears, string PersonKeyFormatted, string CheckFile, string Directory, string PersonDirectory)> collection = new();
|
||||||
foreach (Mapping mapping in mappingCollection)
|
foreach (Mapping mapping in mappingCollection)
|
||||||
{
|
{
|
||||||
directoryName = Path.GetDirectoryName(mapping.MappingFromItem.RelativePath);
|
directoryName = Path.GetDirectoryName(mapping.MappingFromItem.RelativePath);
|
||||||
@ -722,35 +778,39 @@ public class MapLogic
|
|||||||
throw new NotSupportedException();
|
throw new NotSupportedException();
|
||||||
if (mapping.By is null or IMapLogic.Sorting)
|
if (mapping.By is null or IMapLogic.Sorting)
|
||||||
continue;
|
continue;
|
||||||
if (mapping.MappingFromPerson is null)
|
if (mapping.MappingFromPerson?.ApproximateYears is null)
|
||||||
continue;
|
continue;
|
||||||
if (string.IsNullOrEmpty(mapping.MappingFromPerson.SegmentB))
|
if (string.IsNullOrEmpty(mapping.MappingFromPerson.SegmentB))
|
||||||
throw new NotSupportedException();
|
throw new NotSupportedException();
|
||||||
if (string.IsNullOrEmpty(mapping.MappingFromPerson.DisplayDirectoryName))
|
if (string.IsNullOrEmpty(mapping.MappingFromPerson.DisplayDirectoryName))
|
||||||
throw new NotSupportedException();
|
throw new NotSupportedException();
|
||||||
personKeyFormatted = IPersonBirthday.GetFormatted(_Configuration.PersonBirthdayFormat, mapping.MappingFromPerson.PersonBirthday);
|
personKeyFormatted = IPersonBirthday.GetFormatted(_Configuration.PersonBirthdayFormat, mapping.MappingFromPerson.PersonBirthday);
|
||||||
|
if (personKeyFormatted == "1501-04-10_00")
|
||||||
|
continue;
|
||||||
|
if (!personKeyFormattedCollection.Contains(personKeyFormatted))
|
||||||
|
continue;
|
||||||
directory = Path.Combine(_EDistanceContentTicksDirectory, "Images", personKeyFormatted);
|
directory = Path.Combine(_EDistanceContentTicksDirectory, "Images", personKeyFormatted);
|
||||||
personDirectory = Path.Combine(directory, mapping.MappingFromPerson.DisplayDirectoryName);
|
personDirectory = Path.Combine(directory, mapping.MappingFromPerson.DisplayDirectoryName);
|
||||||
checkFile = Path.Combine(directory, $"{mapping.MappingFromLocation.DeterministicHashCodeKey}{mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}");
|
checkFile = Path.Combine(directory, $"{mapping.MappingFromLocation.DeterministicHashCodeKey}{mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}");
|
||||||
collection.Add(new(mapping.MappingFromItem.ResizedFileHolder, personKeyFormatted, checkFile, directory, personDirectory));
|
collection.Add(new(mapping.MappingFromItem.Id, mapping.MappingFromItem.ResizedFileHolder, mapping.MappingFromPerson.ApproximateYears.Value, personKeyFormatted, directory, personDirectory, checkFile));
|
||||||
}
|
}
|
||||||
results = (from l in collection orderby l.PersonKeyFormatted descending select l).ToArray();
|
results = (from l in collection orderby l.ApproximateYears descending, l.PersonKeyFormatted descending select l).ToArray();
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SaveResizedImagesByPersonKeyFormatted(string[] juliePhares, Mapping[] mappingCollection, int totalNotMapped)
|
public void SaveResizedImagesByPersonKeyFormatted(string[] jLinks, string a2PeopleSingletonDirectory, PersonContainer[] personContainers, Mapping[] mappingCollection, int totalNotMapped)
|
||||||
{
|
{
|
||||||
if (_Configuration is null)
|
if (_Configuration is null)
|
||||||
throw new NullReferenceException(nameof(_Configuration));
|
throw new NullReferenceException(nameof(_Configuration));
|
||||||
List<SaveContainer> saveContainers = new();
|
|
||||||
SaveContainer? saveContainer;
|
SaveContainer? saveContainer;
|
||||||
(FileHolder, string, string, string, string)[] collection = GetCollection(mappingCollection);
|
List<int> distinctCollection = new();
|
||||||
foreach ((FileHolder resizedFileHolder, string personKeyFormatted, string checkFile, string directory, string personDirectory) in collection)
|
List<SaveContainer> saveContainers = new();
|
||||||
|
(int, FileHolder, int, string, string, string, string)[] collection = GetCollection(jLinks, a2PeopleSingletonDirectory, personContainers, mappingCollection);
|
||||||
|
foreach ((int id, FileHolder resizedFileHolder, int approximateYears, string personKeyFormatted, string directory, string personDirectory, string checkFile) in collection)
|
||||||
{
|
{
|
||||||
if (personKeyFormatted == "1501-04-10_00")
|
if (distinctCollection.Contains(id))
|
||||||
continue;
|
|
||||||
if (!juliePhares.Contains(personKeyFormatted))
|
|
||||||
continue;
|
continue;
|
||||||
|
distinctCollection.Add(id);
|
||||||
saveContainer = new(personDirectory);
|
saveContainer = new(personDirectory);
|
||||||
saveContainers.Add(saveContainer);
|
saveContainers.Add(saveContainer);
|
||||||
saveContainer = new(resizedFileHolder, checkFile, directory);
|
saveContainer = new(resizedFileHolder, checkFile, directory);
|
||||||
|
@ -5,10 +5,10 @@ public interface IPersonContainer
|
|||||||
|
|
||||||
// ...
|
// ...
|
||||||
|
|
||||||
Models.PersonContainer[] TestStatic_GetPersonContainers(Properties.IStorage storage, string personBirthdayFormat, string[] verifyPersonKeyFormattedCollection, string facesFileNameExtension) =>
|
Models.PersonContainer[] TestStatic_GetPersonContainers(Properties.IStorage storage, string personBirthdayFormat, string facesFileNameExtension) =>
|
||||||
GetPersonContainers(storage, personBirthdayFormat, verifyPersonKeyFormattedCollection, facesFileNameExtension);
|
GetPersonContainers(storage, personBirthdayFormat, facesFileNameExtension);
|
||||||
static Models.PersonContainer[] GetPersonContainers(Properties.IStorage storage, string personBirthdayFormat, string[] verifyPersonKeyFormattedCollection, string facesFileNameExtension) =>
|
static Models.PersonContainer[] GetPersonContainers(Properties.IStorage storage, string personBirthdayFormat, string facesFileNameExtension) =>
|
||||||
PersonContainer.GetPersonContainers(storage, personBirthdayFormat, verifyPersonKeyFormattedCollection, facesFileNameExtension);
|
PersonContainer.GetPersonContainers(storage, personBirthdayFormat, facesFileNameExtension);
|
||||||
|
|
||||||
List<(long?, string)> TestStatic_GetDisplay(string personBirthdayFormat, Models.PersonContainer personContainer) =>
|
List<(long?, string)> TestStatic_GetDisplay(string personBirthdayFormat, Models.PersonContainer personContainer) =>
|
||||||
GetDisplay(personBirthdayFormat, personContainer);
|
GetDisplay(personBirthdayFormat, personContainer);
|
||||||
|
@ -155,28 +155,7 @@ internal abstract class PersonContainer
|
|||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void Verify(string personBirthdayFormat, string[] verifyPersonKeyFormattedCollection, Models.PersonContainer[] results)
|
internal static Models.PersonContainer[] GetPersonContainers(Properties.IStorage storage, string personBirthdayFormat, string facesFileNameExtension)
|
||||||
{
|
|
||||||
const int zero = 0;
|
|
||||||
string personKeyFormatted;
|
|
||||||
List<string> collection = new();
|
|
||||||
Models.PersonBirthday personBirthday;
|
|
||||||
foreach (Models.PersonContainer personContainer in results)
|
|
||||||
{
|
|
||||||
if (personContainer.Key is null || personContainer.Birthdays is null || !personContainer.Birthdays.Any())
|
|
||||||
continue;
|
|
||||||
personBirthday = personContainer.Birthdays[zero];
|
|
||||||
personKeyFormatted = IPersonBirthday.GetFormatted(personBirthdayFormat, personBirthday);
|
|
||||||
if (!verifyPersonKeyFormattedCollection.Contains(personKeyFormatted))
|
|
||||||
continue;
|
|
||||||
if (personContainer.DisplayDirectoryAllFiles.Any(l => !l.Contains('^')))
|
|
||||||
collection.Add(personContainer.DisplayDirectoryName);
|
|
||||||
}
|
|
||||||
if (collection.Any())
|
|
||||||
throw new NotSupportedException($"A person in the verify collection has a approximate birthday!{Environment.NewLine}{string.Join(Environment.NewLine, collection.ToArray())}");
|
|
||||||
}
|
|
||||||
|
|
||||||
internal static Models.PersonContainer[] GetPersonContainers(Properties.IStorage storage, string personBirthdayFormat, string[] verifyPersonKeyFormattedCollection, string facesFileNameExtension)
|
|
||||||
{
|
{
|
||||||
Models.PersonContainer[] results;
|
Models.PersonContainer[] results;
|
||||||
char[] chars = IAge.GetChars();
|
char[] chars = IAge.GetChars();
|
||||||
@ -195,7 +174,6 @@ internal abstract class PersonContainer
|
|||||||
results = Array.Empty<Models.PersonContainer>();
|
results = Array.Empty<Models.PersonContainer>();
|
||||||
else
|
else
|
||||||
results = GetPersonContainersGroups(personBirthdayFormat, facesFileNameExtension, chars, groupDirectories);
|
results = GetPersonContainersGroups(personBirthdayFormat, facesFileNameExtension, chars, groupDirectories);
|
||||||
Verify(personBirthdayFormat, verifyPersonKeyFormattedCollection, results);
|
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ public class Configuration
|
|||||||
[Display(Name = "Force Resize Last Write Time to Creation Time"), Required] public bool? ForceResizeLastWriteTimeToCreationTime { get; set; }
|
[Display(Name = "Force Resize Last Write Time to Creation Time"), Required] public bool? ForceResizeLastWriteTimeToCreationTime { get; set; }
|
||||||
[Display(Name = "Ignore Extensions"), Required] public string[] IgnoreExtensions { get; set; }
|
[Display(Name = "Ignore Extensions"), Required] public string[] IgnoreExtensions { get; set; }
|
||||||
[Display(Name = "Ignore Relative Paths"), Required] public string[] IgnoreRelativePaths { get; set; }
|
[Display(Name = "Ignore Relative Paths"), Required] public string[] IgnoreRelativePaths { get; set; }
|
||||||
[Display(Name = "Julie Phares Copy Birthdays"), Required] public string[] JuliePhares { 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 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 Or Create Then Save Image Faces Results"), Required] public string[] LoadOrCreateThenSaveImageFacesResultsForOutputResolutions { get; set; }
|
||||||
[Display(Name = "Load Or Create Then Save Index"), Required] public bool? LoadOrCreateThenSaveIndex { get; set; }
|
[Display(Name = "Load Or Create Then Save Index"), Required] public bool? LoadOrCreateThenSaveIndex { get; set; }
|
||||||
@ -149,7 +149,7 @@ public class Configuration
|
|||||||
configuration.ForceResizeLastWriteTimeToCreationTime.Value,
|
configuration.ForceResizeLastWriteTimeToCreationTime.Value,
|
||||||
configuration.IgnoreExtensions,
|
configuration.IgnoreExtensions,
|
||||||
configuration.IgnoreRelativePaths,
|
configuration.IgnoreRelativePaths,
|
||||||
configuration.JuliePhares,
|
configuration.JLinks,
|
||||||
configuration.LoadOrCreateThenSaveDistanceResultsForOutputResolutions,
|
configuration.LoadOrCreateThenSaveDistanceResultsForOutputResolutions,
|
||||||
configuration.LoadOrCreateThenSaveImageFacesResultsForOutputResolutions,
|
configuration.LoadOrCreateThenSaveImageFacesResultsForOutputResolutions,
|
||||||
configuration.LoadOrCreateThenSaveIndex.Value,
|
configuration.LoadOrCreateThenSaveIndex.Value,
|
||||||
|
@ -18,7 +18,7 @@ public class Configuration
|
|||||||
public bool ForceResizeLastWriteTimeToCreationTime { init; get; }
|
public bool ForceResizeLastWriteTimeToCreationTime { init; get; }
|
||||||
public string[] IgnoreExtensions { init; get; }
|
public string[] IgnoreExtensions { init; get; }
|
||||||
public string[] IgnoreRelativePaths { init; get; }
|
public string[] IgnoreRelativePaths { init; get; }
|
||||||
public string[] JuliePhares { init; get; }
|
public string[] JLinks { init; get; }
|
||||||
public string[] LoadOrCreateThenSaveDistanceResultsForOutputResolutions { init; get; }
|
public string[] LoadOrCreateThenSaveDistanceResultsForOutputResolutions { init; get; }
|
||||||
public string[] LoadOrCreateThenSaveImageFacesResultsForOutputResolutions { init; get; }
|
public string[] LoadOrCreateThenSaveImageFacesResultsForOutputResolutions { init; get; }
|
||||||
public bool LoadOrCreateThenSaveIndex { init; get; }
|
public bool LoadOrCreateThenSaveIndex { init; get; }
|
||||||
@ -63,7 +63,7 @@ public class Configuration
|
|||||||
bool forceResizeLastWriteTimeToCreationTime,
|
bool forceResizeLastWriteTimeToCreationTime,
|
||||||
string[] ignoreExtensions,
|
string[] ignoreExtensions,
|
||||||
string[] ignoreRelativePaths,
|
string[] ignoreRelativePaths,
|
||||||
string[] juliePhares,
|
string[] jLinks,
|
||||||
string[] loadOrCreateThenSaveDistanceResultsForOutputResolutions,
|
string[] loadOrCreateThenSaveDistanceResultsForOutputResolutions,
|
||||||
string[] loadOrCreateThenSaveImageFacesResultsForOutputResolutions,
|
string[] loadOrCreateThenSaveImageFacesResultsForOutputResolutions,
|
||||||
bool loadOrCreateThenSaveIndex,
|
bool loadOrCreateThenSaveIndex,
|
||||||
@ -107,7 +107,7 @@ public class Configuration
|
|||||||
ForceResizeLastWriteTimeToCreationTime = forceResizeLastWriteTimeToCreationTime;
|
ForceResizeLastWriteTimeToCreationTime = forceResizeLastWriteTimeToCreationTime;
|
||||||
IgnoreExtensions = ignoreExtensions;
|
IgnoreExtensions = ignoreExtensions;
|
||||||
IgnoreRelativePaths = ignoreRelativePaths;
|
IgnoreRelativePaths = ignoreRelativePaths;
|
||||||
JuliePhares = juliePhares;
|
JLinks = jLinks;
|
||||||
LoadOrCreateThenSaveDistanceResultsForOutputResolutions = loadOrCreateThenSaveDistanceResultsForOutputResolutions;
|
LoadOrCreateThenSaveDistanceResultsForOutputResolutions = loadOrCreateThenSaveDistanceResultsForOutputResolutions;
|
||||||
LoadOrCreateThenSaveImageFacesResultsForOutputResolutions = loadOrCreateThenSaveImageFacesResultsForOutputResolutions;
|
LoadOrCreateThenSaveImageFacesResultsForOutputResolutions = loadOrCreateThenSaveImageFacesResultsForOutputResolutions;
|
||||||
LoadOrCreateThenSaveIndex = loadOrCreateThenSaveIndex;
|
LoadOrCreateThenSaveIndex = loadOrCreateThenSaveIndex;
|
||||||
|
@ -27,7 +27,7 @@ public class Configuration
|
|||||||
[Display(Name = "Force Resize Last Write Time to Creation Time"), Required] public bool? ForceResizeLastWriteTimeToCreationTime { get; set; }
|
[Display(Name = "Force Resize Last Write Time to Creation Time"), Required] public bool? ForceResizeLastWriteTimeToCreationTime { get; set; }
|
||||||
[Display(Name = "Ignore Extensions"), Required] public string[] IgnoreExtensions { get; set; }
|
[Display(Name = "Ignore Extensions"), Required] public string[] IgnoreExtensions { get; set; }
|
||||||
[Display(Name = "Ignore Relative Paths"), Required] public string[] IgnoreRelativePaths { get; set; }
|
[Display(Name = "Ignore Relative Paths"), Required] public string[] IgnoreRelativePaths { get; set; }
|
||||||
[Display(Name = "Julie Phares Copy Birthdays"), Required] public string[] JuliePhares { 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 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 Or Create Then Save Image Faces Results"), Required] public string[] LoadOrCreateThenSaveImageFacesResultsForOutputResolutions { get; set; }
|
||||||
[Display(Name = "Load Or Create Then Save Index"), Required] public bool? LoadOrCreateThenSaveIndex { get; set; }
|
[Display(Name = "Load Or Create Then Save Index"), Required] public bool? LoadOrCreateThenSaveIndex { get; set; }
|
||||||
@ -235,7 +235,7 @@ public class Configuration
|
|||||||
configuration.ForceResizeLastWriteTimeToCreationTime.Value,
|
configuration.ForceResizeLastWriteTimeToCreationTime.Value,
|
||||||
configuration.IgnoreExtensions,
|
configuration.IgnoreExtensions,
|
||||||
configuration.IgnoreRelativePaths,
|
configuration.IgnoreRelativePaths,
|
||||||
configuration.JuliePhares,
|
configuration.JLinks,
|
||||||
configuration.LoadOrCreateThenSaveDistanceResultsForOutputResolutions,
|
configuration.LoadOrCreateThenSaveDistanceResultsForOutputResolutions,
|
||||||
configuration.LoadOrCreateThenSaveImageFacesResultsForOutputResolutions,
|
configuration.LoadOrCreateThenSaveImageFacesResultsForOutputResolutions,
|
||||||
configuration.LoadOrCreateThenSaveIndex.Value,
|
configuration.LoadOrCreateThenSaveIndex.Value,
|
||||||
|
@ -26,7 +26,7 @@ public class Configuration
|
|||||||
public bool ForceResizeLastWriteTimeToCreationTime { init; get; }
|
public bool ForceResizeLastWriteTimeToCreationTime { init; get; }
|
||||||
public string[] IgnoreExtensions { init; get; }
|
public string[] IgnoreExtensions { init; get; }
|
||||||
public string[] IgnoreRelativePaths { init; get; }
|
public string[] IgnoreRelativePaths { init; get; }
|
||||||
public string[] JuliePhares { init; get; }
|
public string[] JLinks { init; get; }
|
||||||
public string[] LoadOrCreateThenSaveDistanceResultsForOutputResolutions { init; get; }
|
public string[] LoadOrCreateThenSaveDistanceResultsForOutputResolutions { init; get; }
|
||||||
public string[] LoadOrCreateThenSaveImageFacesResultsForOutputResolutions { init; get; }
|
public string[] LoadOrCreateThenSaveImageFacesResultsForOutputResolutions { init; get; }
|
||||||
public bool LoadOrCreateThenSaveIndex { init; get; }
|
public bool LoadOrCreateThenSaveIndex { init; get; }
|
||||||
@ -94,7 +94,7 @@ public class Configuration
|
|||||||
bool forceResizeLastWriteTimeToCreationTime,
|
bool forceResizeLastWriteTimeToCreationTime,
|
||||||
string[] ignoreExtensions,
|
string[] ignoreExtensions,
|
||||||
string[] ignoreRelativePaths,
|
string[] ignoreRelativePaths,
|
||||||
string[] juliePhares,
|
string[] jLinks,
|
||||||
string[] loadOrCreateThenSaveDistanceResultsForOutputResolutions,
|
string[] loadOrCreateThenSaveDistanceResultsForOutputResolutions,
|
||||||
string[] loadOrCreateThenSaveImageFacesResultsForOutputResolutions,
|
string[] loadOrCreateThenSaveImageFacesResultsForOutputResolutions,
|
||||||
bool loadOrCreateThenSaveIndex,
|
bool loadOrCreateThenSaveIndex,
|
||||||
@ -161,7 +161,7 @@ public class Configuration
|
|||||||
ForceResizeLastWriteTimeToCreationTime = forceResizeLastWriteTimeToCreationTime;
|
ForceResizeLastWriteTimeToCreationTime = forceResizeLastWriteTimeToCreationTime;
|
||||||
IgnoreExtensions = ignoreExtensions;
|
IgnoreExtensions = ignoreExtensions;
|
||||||
IgnoreRelativePaths = ignoreRelativePaths;
|
IgnoreRelativePaths = ignoreRelativePaths;
|
||||||
JuliePhares = juliePhares;
|
JLinks = jLinks;
|
||||||
LoadOrCreateThenSaveDistanceResultsForOutputResolutions = loadOrCreateThenSaveDistanceResultsForOutputResolutions;
|
LoadOrCreateThenSaveDistanceResultsForOutputResolutions = loadOrCreateThenSaveDistanceResultsForOutputResolutions;
|
||||||
LoadOrCreateThenSaveImageFacesResultsForOutputResolutions = loadOrCreateThenSaveImageFacesResultsForOutputResolutions;
|
LoadOrCreateThenSaveImageFacesResultsForOutputResolutions = loadOrCreateThenSaveImageFacesResultsForOutputResolutions;
|
||||||
LoadOrCreateThenSaveIndex = loadOrCreateThenSaveIndex;
|
LoadOrCreateThenSaveIndex = loadOrCreateThenSaveIndex;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user