CreateTree

This commit is contained in:
2023-03-29 22:45:03 -07:00
parent cdd3542d72
commit 4bde1ba645
8 changed files with 127 additions and 56 deletions

View File

@ -172,7 +172,7 @@ internal abstract class MapLogic
}
foreach (string file in files)
{
if (file.EndsWith(".lnk") || file.EndsWith(".json"))
if (file.EndsWith(".lnk"))
continue;
(id, normalizedRectangle) = IMapping.GetConverted(configuration.FacesFileNameExtension, file);
if (id is null || normalizedRectangle is null)
@ -281,7 +281,7 @@ internal abstract class MapLogic
{
PersonBirthday? personBirthday;
PersonContainer[] distinctPersonContainers;
List<(long, PersonContainer)> collection = GetDistinctCollection(configuration, personContainers, personKeyToPersonContainerCollection, personKeyFormattedToPersonContainer);
(long, PersonContainer)[] collection = GetDistinctCollection(configuration, personContainers, personKeyToPersonContainerCollection, personKeyFormattedToPersonContainer);
foreach ((long personKey, PersonContainer personContainer) in collection)
personKeyToPersonContainer.Add(personKey, personContainer);
Dictionary<int, Dictionary<int, List<PersonContainer>>> idThenNormalizedRectangleToPersonContainerCollection = new();
@ -325,11 +325,12 @@ internal abstract class MapLogic
};
}
private static List<(long, PersonContainer)> GetDistinctCollection(Configuration configuration, IEnumerable<PersonContainer> personContainers, Dictionary<long, List<PersonContainer>> personKeyToPersonContainerCollection, Dictionary<string, PersonContainer> personKeyFormattedToPersonContainer)
private static (long, PersonContainer)[] GetDistinctCollection(Configuration configuration, IEnumerable<PersonContainer> personContainers, Dictionary<long, List<PersonContainer>> personKeyToPersonContainerCollection, Dictionary<string, PersonContainer> personKeyFormattedToPersonContainer)
{
List<(long, PersonContainer)> results = new();
(long, PersonContainer)[] results;
const int zero = 0;
string newestPersonKeyFormatted;
List<(long PersonKey, PersonContainer PersonContainer)> collection = new();
foreach (PersonContainer personContainer in personContainers)
{
if (personContainer.Key is null)
@ -345,8 +346,9 @@ internal abstract class MapLogic
{
if (keyValuePair.Value.Count != 1 && (from l in keyValuePair.Value select l.DisplayDirectoryName).Distinct().Count() != 1)
throw new NotSupportedException(keyValuePair.Value[zero].DisplayDirectoryName);
results.Add(new(keyValuePair.Key, keyValuePair.Value[zero]));
collection.Add(new(keyValuePair.Key, keyValuePair.Value[zero]));
}
results = (from l in collection orderby l.PersonKey descending select (l.PersonKey, l.PersonContainer)).ToArray();
return results;
}
@ -694,7 +696,7 @@ internal abstract class MapLogic
}
}
internal static List<(long, string)> GetDisplayDirectoryAllFiles(PersonContainer[] personContainers)
internal static List<(long, string)> GetDisplayDirectoryAllFiles(string fileNameExtension, PersonContainer[] personContainers)
{
List<(long, string)> results = new();
List<string> distinct = new();
@ -704,7 +706,7 @@ internal abstract class MapLogic
continue;
foreach (string displayDirectoryAllFile in personContainer.DisplayDirectoryAllFiles)
{
if (displayDirectoryAllFile.EndsWith(".json"))
if (!displayDirectoryAllFile.EndsWith(fileNameExtension))
continue;
if (distinct.Contains(displayDirectoryAllFile))
continue;

View File

@ -8,10 +8,10 @@ public interface IMapLogic
static Dictionary<int, List<long>> GetIdToPersonKeys(Dictionary<long, List<int>> personKeyToIds) =>
MapLogic.GetIdToPersonKeys(personKeyToIds);
List<(long, string)> TestStatic_GetDisplayDirectoryAllFiles(Shared.Models.PersonContainer[] personContainers) =>
GetDisplayDirectoryAllFiles(personContainers);
static List<(long, string)> GetDisplayDirectoryAllFiles(Shared.Models.PersonContainer[] personContainers) =>
MapLogic.GetDisplayDirectoryAllFiles(personContainers);
List<(long, string)> TestStatic_GetDisplayDirectoryAllFiles(string fileNameExtension, Shared.Models.PersonContainer[] personContainers) =>
GetDisplayDirectoryAllFiles(fileNameExtension, personContainers);
static List<(long, string)> GetDisplayDirectoryAllFiles(string fileNameExtension, Shared.Models.PersonContainer[] personContainers) =>
MapLogic.GetDisplayDirectoryAllFiles(fileNameExtension, personContainers);
Shared.Models.Mapping[] TestStatic_GetSelectedMappingCollection(List<Shared.Models.Face> distinctFilteredFaces) =>
GetSelectedMappingCollection(distinctFilteredFaces);