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

@ -345,12 +345,12 @@ internal abstract class MapLogic
}
}
private static string? GetCheckFile(string facesFileNameExtension, string file, int id, int normalizedPixelPercentage)
private static string? GetCheckFile(Configuration configuration, string facesFileNameExtension, string file, int id, int normalizedPixelPercentage)
{
string? result;
string fileName = Path.GetFileName(file);
string? directoryName = Path.GetDirectoryName(file);
(string? Id, string? NormalizedPixelPercentage, string? ExtensionLowered, bool? Check) segments = IMapping.GetSegments(facesFileNameExtension, fileName);
(string? Id, string? NormalizedPixelPercentage, string? ExtensionLowered, bool? Check) segments = IMapping.GetSegments(configuration.LocationDigits, facesFileNameExtension, fileName);
if (string.IsNullOrEmpty(directoryName) || string.IsNullOrEmpty(segments.Id) || string.IsNullOrEmpty(segments.NormalizedPixelPercentage) || string.IsNullOrEmpty(segments.ExtensionLowered))
result = null;
else
@ -452,7 +452,7 @@ internal abstract class MapLogic
result++;
continue;
}
checkFile = GetCheckFile(facesFileNameExtension, file, id.Value, normalizedPixelPercentage.Value);
checkFile = GetCheckFile(configuration, facesFileNameExtension, file, id.Value, normalizedPixelPercentage.Value);
if (string.IsNullOrEmpty(checkFile))
throw new NotSupportedException();
if (faces is null)
@ -554,8 +554,8 @@ internal abstract class MapLogic
private static void SetPersonTicks(long ticks, List<Face> distinctFilteredFaces, Dictionary<long, (long LCL, long Minimum, long Maximum, long UCL)> personKeyToRanges, Dictionary<int, Dictionary<int, PersonContainer[]>> idThenNormalizedPixelPercentageToPersonContainers)
{
PersonContainer[] personContainers;
Dictionary<int, PersonContainer[]> keyValuePairs;
PersonContainer[]? personContainers;
Dictionary<int, PersonContainer[]>? keyValuePairs;
Dictionary<long, List<long>> personTicks = new();
int totalSeconds = (int)Math.Floor(new TimeSpan(DateTime.Now.Ticks - ticks).TotalSeconds);
string message = $") {distinctFilteredFaces.Count:000} Set Person Ticks - {totalSeconds} total second(s)";
@ -566,12 +566,10 @@ internal abstract class MapLogic
progressBar.Tick();
if (face.Mapping is null)
throw new NotSupportedException();
if (!idThenNormalizedPixelPercentageToPersonContainers.ContainsKey(face.Mapping.MappingFromItem.Id))
if (!idThenNormalizedPixelPercentageToPersonContainers.TryGetValue(face.Mapping.MappingFromItem.Id, out keyValuePairs))
continue;
keyValuePairs = idThenNormalizedPixelPercentageToPersonContainers[face.Mapping.MappingFromItem.Id];
if (!keyValuePairs.ContainsKey(face.Mapping.MappingFromLocation.NormalizedPixelPercentage))
if (!keyValuePairs.TryGetValue(face.Mapping.MappingFromLocation.NormalizedPixelPercentage, out personContainers))
continue;
personContainers = keyValuePairs[face.Mapping.MappingFromLocation.NormalizedPixelPercentage];
foreach (PersonContainer personContainer in personContainers)
{
if (personContainer.Key is null)
@ -607,13 +605,14 @@ internal abstract class MapLogic
private static void AppendToSkipCollection(Dictionary<int, List<int>> skipCollection, Dictionary<int, Dictionary<int, PersonContainer[]>> idThenNormalizedPixelPercentageToPersonContainers, Dictionary<int, Dictionary<int, PersonContainer[]>> incorrectIdThenNormalizedPixelPercentageToPersonContainers)
{
Dictionary<int, PersonContainer[]>? keyValuePairs;
foreach (KeyValuePair<int, Dictionary<int, PersonContainer[]>> keyValuePair in incorrectIdThenNormalizedPixelPercentageToPersonContainers)
{
if (!skipCollection.ContainsKey(keyValuePair.Key))
skipCollection.Add(keyValuePair.Key, new());
if (idThenNormalizedPixelPercentageToPersonContainers.ContainsKey(keyValuePair.Key))
if (idThenNormalizedPixelPercentageToPersonContainers.TryGetValue(keyValuePair.Key, out keyValuePairs))
{
if (idThenNormalizedPixelPercentageToPersonContainers[keyValuePair.Key].ContainsKey(keyValuePair.Value.ElementAt(0).Key))
if (keyValuePairs.ContainsKey(keyValuePair.Value.ElementAt(0).Key))
continue;
}
skipCollection[keyValuePair.Key].AddRange(from l in keyValuePair.Value.Keys select l);
@ -642,7 +641,7 @@ internal abstract class MapLogic
{
int? approximateYears = null;
PersonBirthday? personBirthday;
PersonContainer personContainer;
PersonContainer? personContainer;
string displayDirectoryName = configuration.MappingDefaultName;
foreach (long personKey in personKeyCollection)
{