Get Segments

This commit is contained in:
2022-09-20 20:24:03 -07:00
parent b24d3b9c8d
commit 90244811ed
7 changed files with 60 additions and 54 deletions

View File

@ -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))