Get Segments
This commit is contained in:
@ -115,13 +115,14 @@ public class MapLogic
|
||||
private List<(long, long, long, long)> GetPersonKeysRangesCollection(PersonContainer[] personContainers)
|
||||
{
|
||||
List<(long, long, long, long)> results = new();
|
||||
(long, long, long, long) singleton;
|
||||
foreach (PersonContainer personContainer in personContainers)
|
||||
{
|
||||
if (personContainer.Key is null)
|
||||
continue;
|
||||
if (!_PersonKeyToRanges.ContainsKey(personContainer.Key.Value))
|
||||
if (!_PersonKeyToRanges.TryGetValue(personContainer.Key.Value, out singleton))
|
||||
continue;
|
||||
results.Add(_PersonKeyToRanges[personContainer.Key.Value]);
|
||||
results.Add(singleton);
|
||||
}
|
||||
return results;
|
||||
}
|
||||
@ -133,7 +134,8 @@ public class MapLogic
|
||||
List<Sorting> results = new();
|
||||
Sorting sorting;
|
||||
FaceDistance faceDistanceLength;
|
||||
Dictionary<int, PersonContainer[]> keyValuePairs;
|
||||
List<int>? normalizedPixelPercentages;
|
||||
Dictionary<int, PersonContainer[]>? keyValuePairs;
|
||||
List<(long lcl, long minimum, long maximum, long ucl)> personKeysRangesCollection;
|
||||
for (int j = 0; j < faceDistanceLengths.Count; j++)
|
||||
{
|
||||
@ -144,20 +146,18 @@ public class MapLogic
|
||||
throw new NotSupportedException();
|
||||
if (faceDistanceLength.Length == 0)
|
||||
continue;
|
||||
if (_SkipCollection.ContainsKey(faceDistanceEncoding.Id))
|
||||
if (_SkipCollection.TryGetValue(faceDistanceEncoding.Id, out normalizedPixelPercentages))
|
||||
{
|
||||
if (_SkipCollection[faceDistanceEncoding.Id].Contains(faceDistanceEncoding.NormalizedPixelPercentage.Value))
|
||||
if (normalizedPixelPercentages.Contains(faceDistanceEncoding.NormalizedPixelPercentage.Value))
|
||||
continue;
|
||||
}
|
||||
if (_IdThenNormalizedPixelPercentageToPersonContainers.ContainsKey(faceDistanceEncoding.Id))
|
||||
if (_IdThenNormalizedPixelPercentageToPersonContainers.TryGetValue(faceDistanceEncoding.Id, out keyValuePairs))
|
||||
{
|
||||
keyValuePairs = _IdThenNormalizedPixelPercentageToPersonContainers[faceDistanceEncoding.Id];
|
||||
if (keyValuePairs.ContainsKey(faceDistanceEncoding.NormalizedPixelPercentage.Value))
|
||||
continue;
|
||||
}
|
||||
if (!_IdThenNormalizedPixelPercentageToPersonContainers.ContainsKey(faceDistanceLength.Id))
|
||||
if (!_IdThenNormalizedPixelPercentageToPersonContainers.TryGetValue(faceDistanceLength.Id, out keyValuePairs))
|
||||
continue;
|
||||
keyValuePairs = _IdThenNormalizedPixelPercentageToPersonContainers[faceDistanceLength.Id];
|
||||
if (!keyValuePairs.ContainsKey(faceDistanceLength.NormalizedPixelPercentage.Value))
|
||||
continue;
|
||||
personKeysRangesCollection = GetPersonKeysRangesCollection(keyValuePairs[faceDistanceLength.NormalizedPixelPercentage.Value]);
|
||||
@ -183,8 +183,8 @@ public class MapLogic
|
||||
string fullName;
|
||||
string personKeyFormatted;
|
||||
PersonBirthday personBirthday;
|
||||
PersonContainer personContainer;
|
||||
WindowsShortcut windowsShortcut;
|
||||
PersonContainer? personContainer;
|
||||
List<(Face, long?, (string, string, string, string))> collection = GetCollection(distinctFilteredFaces);
|
||||
foreach ((Face face, long? personKey, (string directory, string copyDirectory, string copyFileName, string shortcutFileName)) in collection)
|
||||
{
|
||||
@ -205,9 +205,8 @@ public class MapLogic
|
||||
if (!Directory.Exists(directory))
|
||||
{
|
||||
_ = Directory.CreateDirectory(directory);
|
||||
if (personKey is not null && _PersonKeyToPersonContainer.ContainsKey(personKey.Value))
|
||||
if (personKey is not null && _PersonKeyToPersonContainer.TryGetValue(personKey.Value, out personContainer))
|
||||
{
|
||||
personContainer = _PersonKeyToPersonContainer[personKey.Value];
|
||||
fullName = string.Concat(personContainer.DisplayDirectoryName, ".txt");
|
||||
File.WriteAllText(Path.Combine(directory, fullName), string.Empty);
|
||||
}
|
||||
@ -270,23 +269,23 @@ public class MapLogic
|
||||
const int zero = 0;
|
||||
string mappingSegmentB;
|
||||
PersonBirthday personBirthday;
|
||||
PersonContainer[]? collection;
|
||||
int by = Stateless.IMapLogic.Mapping;
|
||||
List<PersonContainer> personContainers = new();
|
||||
Dictionary<int, PersonContainer[]> keyValuePairs;
|
||||
Dictionary<int, PersonContainer[]>? keyValuePairs;
|
||||
foreach (Face face in distinctFilteredFaces)
|
||||
{
|
||||
personContainers.Clear();
|
||||
if (face.Mapping is null)
|
||||
throw new NotSupportedException();
|
||||
if (!_IdThenNormalizedPixelPercentageToPersonContainers.ContainsKey(face.Mapping.MappingFromItem.Id))
|
||||
if (!_IdThenNormalizedPixelPercentageToPersonContainers.TryGetValue(face.Mapping.MappingFromItem.Id, out keyValuePairs))
|
||||
result += 1;
|
||||
else
|
||||
{
|
||||
keyValuePairs = _IdThenNormalizedPixelPercentageToPersonContainers[face.Mapping.MappingFromItem.Id];
|
||||
if (!keyValuePairs.ContainsKey(face.Mapping.MappingFromLocation.NormalizedPixelPercentage))
|
||||
if (!keyValuePairs.TryGetValue(face.Mapping.MappingFromLocation.NormalizedPixelPercentage, out collection))
|
||||
result += 1;
|
||||
else
|
||||
personContainers.AddRange(keyValuePairs[face.Mapping.MappingFromLocation.NormalizedPixelPercentage]);
|
||||
personContainers.AddRange(collection);
|
||||
}
|
||||
foreach (PersonContainer personContainer in personContainers)
|
||||
{
|
||||
@ -420,7 +419,7 @@ public class MapLogic
|
||||
PersonBirthday personBirthday;
|
||||
DateTime dateTime = DateTime.Now;
|
||||
PersonContainer[] personContainers;
|
||||
Dictionary<int, PersonContainer[]> keyValuePairs;
|
||||
Dictionary<int, PersonContainer[]>? keyValuePairs;
|
||||
foreach (Face face in distinctFilteredFaces)
|
||||
{
|
||||
if (face.Mapping is null)
|
||||
@ -430,14 +429,13 @@ public class MapLogic
|
||||
relativePath = Path.GetDirectoryName($"C:{face.RelativePath}");
|
||||
if (string.IsNullOrEmpty(relativePath) || relativePath.Length < 3)
|
||||
continue;
|
||||
if (!_IdThenNormalizedPixelPercentageToPersonContainers.ContainsKey(face.Mapping.MappingFromItem.Id))
|
||||
if (!_IdThenNormalizedPixelPercentageToPersonContainers.TryGetValue(face.Mapping.MappingFromItem.Id, out keyValuePairs))
|
||||
{
|
||||
personKey = null;
|
||||
directory = Path.Combine(_EDistanceContentTicksDirectory, $"Unnamed{relativePath[2..]}");
|
||||
}
|
||||
else
|
||||
{
|
||||
keyValuePairs = _IdThenNormalizedPixelPercentageToPersonContainers[face.Mapping.MappingFromItem.Id];
|
||||
if (!keyValuePairs.ContainsKey(face.Mapping.MappingFromLocation.NormalizedPixelPercentage))
|
||||
continue;
|
||||
personKey = null;
|
||||
@ -497,7 +495,7 @@ public class MapLogic
|
||||
PersonBirthday personBirthday;
|
||||
PersonContainer[] personContainers;
|
||||
const int by = Stateless.IMapLogic.Sorting;
|
||||
Dictionary<int, PersonContainer[]> keyValuePairs;
|
||||
Dictionary<int, PersonContainer[]>? keyValuePairs;
|
||||
Dictionary<string, List<Mapping>> checkKeyValuePairs = new();
|
||||
int totalSeconds = (int)Math.Floor(new TimeSpan(DateTime.Now.Ticks - _Ticks).TotalSeconds);
|
||||
string message = $") {sortingContainers.Length:000} Update From Sorting Container(s) - {totalSeconds} total second(s)";
|
||||
@ -510,14 +508,13 @@ public class MapLogic
|
||||
progressBar.Tick();
|
||||
if (sortingContainer.Face.Mapping is null)
|
||||
throw new NotSupportedException();
|
||||
if (!_IdThenNormalizedPixelPercentageToPersonContainers.ContainsKey(sortingContainer.Sorting.Id))
|
||||
if (!_IdThenNormalizedPixelPercentageToPersonContainers.TryGetValue(sortingContainer.Sorting.Id, out keyValuePairs))
|
||||
throw new NotSupportedException();
|
||||
if (!results.ContainsKey(sortingContainer.Face.Mapping.MappingFromItem.Id))
|
||||
results.Add(sortingContainer.Face.Mapping.MappingFromItem.Id, new());
|
||||
hashSet = results[sortingContainer.Face.Mapping.MappingFromItem.Id];
|
||||
if (hashSet.Contains(sortingContainer.Face.Mapping.MappingFromLocation.NormalizedPixelPercentage))
|
||||
continue;
|
||||
keyValuePairs = _IdThenNormalizedPixelPercentageToPersonContainers[sortingContainer.Sorting.Id];
|
||||
if (!keyValuePairs.ContainsKey(sortingContainer.Sorting.NormalizedPixelPercentage))
|
||||
throw new NotSupportedException();
|
||||
personContainers = keyValuePairs[sortingContainer.Sorting.NormalizedPixelPercentage];
|
||||
@ -553,7 +550,7 @@ public class MapLogic
|
||||
const int zero = 0;
|
||||
string mappingSegmentB;
|
||||
PersonBirthday personBirthday;
|
||||
List<int> normalizedPixelPercentages;
|
||||
List<int>? normalizedPixelPercentages;
|
||||
int by = Stateless.IMapLogic.ForceSingleImage;
|
||||
string displayDirectoryName = _Configuration.MappingDefaultName;
|
||||
Face[] orderedDistinctFilteredFaces = (from l in distinctFilteredFaces orderby l.Mapping is not null, l.Mapping?.MappingFromLocation.Confidence descending select l).ToArray();
|
||||
@ -563,9 +560,8 @@ public class MapLogic
|
||||
throw new NotSupportedException();
|
||||
if (face.Mapping.MappingFromPerson.PersonBirthday is not null)
|
||||
continue;
|
||||
if (_SkipCollection.ContainsKey(face.Mapping.MappingFromItem.Id))
|
||||
if (_SkipCollection.TryGetValue(face.Mapping.MappingFromItem.Id, out normalizedPixelPercentages))
|
||||
{
|
||||
normalizedPixelPercentages = _SkipCollection[face.Mapping.MappingFromItem.Id];
|
||||
if (normalizedPixelPercentages.Contains(face.Mapping.MappingFromLocation.NormalizedPixelPercentage))
|
||||
continue;
|
||||
}
|
||||
@ -724,8 +720,9 @@ public class MapLogic
|
||||
string? personDisplayDirectory;
|
||||
int? normalizedPixelPercentage;
|
||||
WindowsShortcut windowsShortcut;
|
||||
Dictionary<int, PersonContainer[]> keyValuePairs;
|
||||
Dictionary<int, PersonContainer[]>? keyValuePairs;
|
||||
string by = nameof(Stateless.IMapLogic.ManualCopy);
|
||||
Dictionary<int, Face>? normalizedPixelPercentageToFace;
|
||||
string dFacesContentDirectory = Path.Combine(dResultsFullGroupDirectory, "()");
|
||||
string successfull = $"_ {nameof(Stateless.IMapLogic.ManualCopy).Humanize(LetterCasing.Title)} Successfull";
|
||||
Dictionary<int, Dictionary<int, Face>> idToNormalizedPixelPercentageToFace = GetKeyValuePairs(distinctFilteredFaces);
|
||||
@ -741,9 +738,8 @@ public class MapLogic
|
||||
(id, normalizedPixelPercentage, _) = IMapping.GetReversedDeterministicHashCodeKey(_Configuration.LocationDigits, _FacesFileNameExtension, personDisplayDirectoryAllFile);
|
||||
if (id is null || normalizedPixelPercentage is null)
|
||||
continue;
|
||||
if (_IdThenNormalizedPixelPercentageToPersonContainers.ContainsKey(id.Value))
|
||||
if (_IdThenNormalizedPixelPercentageToPersonContainers.TryGetValue(id.Value, out keyValuePairs))
|
||||
{
|
||||
keyValuePairs = _IdThenNormalizedPixelPercentageToPersonContainers[id.Value];
|
||||
if (keyValuePairs.ContainsKey(normalizedPixelPercentage.Value))
|
||||
continue;
|
||||
}
|
||||
@ -756,10 +752,10 @@ public class MapLogic
|
||||
mappingSegmentB = GetMappingSegmentB(_Ticks, personBirthday, keyValuePair.Value.ApproximateYears, fileInfo.CreationTime, isWrongYear: null);
|
||||
directory = Path.Combine(_EDistanceContentTicksDirectory, by, personKeyFormatted, mappingSegmentB);
|
||||
personDirectory = Path.Combine(directory, keyValuePair.Value.DisplayDirectoryName, "lnk");
|
||||
if (!Directory.Exists(personDirectory))
|
||||
_ = Directory.CreateDirectory(personDirectory);
|
||||
if (!idToNormalizedPixelPercentageToFace.ContainsKey(id.Value))
|
||||
throw new NotSupportedException();
|
||||
if (!idToNormalizedPixelPercentageToFace.TryGetValue(id.Value, out normalizedPixelPercentageToFace))
|
||||
continue;
|
||||
if (!normalizedPixelPercentageToFace.ContainsKey(normalizedPixelPercentage.Value))
|
||||
continue;
|
||||
face = idToNormalizedPixelPercentageToFace[id.Value][normalizedPixelPercentage.Value];
|
||||
if (face.Mapping is null)
|
||||
throw new NotSupportedException();
|
||||
@ -772,6 +768,8 @@ public class MapLogic
|
||||
facesDirectory = Path.Combine($"{dFacesContentDirectory}{directoryName}", face.Mapping.MappingFromItem.ImageFileHolder.NameWithoutExtension);
|
||||
faceFileName = $"{face.Mapping.MappingFromLocation.DeterministicHashCodeKey}{face.Mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}{_FacesFileNameExtension}";
|
||||
checkFile = Path.Combine(directory, fileInfo.Name);
|
||||
if (!Directory.Exists(personDirectory))
|
||||
_ = Directory.CreateDirectory(personDirectory);
|
||||
if (!File.Exists(checkFile))
|
||||
File.Copy(personDisplayDirectoryAllFile, checkFile);
|
||||
if (personDisplayDirectoryAllFile.Contains(successfull))
|
||||
|
Reference in New Issue
Block a user