Using PersonContainer for PersonDisplayDirectoryName
This commit is contained in:
parent
75cfb2a0d9
commit
ee0219f321
@ -944,7 +944,7 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable
|
||||
results = [];
|
||||
else
|
||||
{
|
||||
ReadOnlyDictionary<long, PersonContainer> personKeyToPersonContainer = mapLogic.GetPersonKeyToPersonContainer();
|
||||
ReadOnlyDictionary<long, PersonContainer> personKeyToPersonContainer = PersonContainer.Extract(personContainers);
|
||||
results = mapLogic.GetSaveContainers(cResultsFullGroupDirectory, dResultsFullGroupDirectory, d2ResultsFullGroupDirectory, distanceLimits, onlyOne, personKeyToPersonContainer);
|
||||
}
|
||||
}
|
||||
|
@ -359,12 +359,6 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
return new(results);
|
||||
}
|
||||
|
||||
public ReadOnlyDictionary<long, PersonContainer> GetPersonKeyToPersonContainer()
|
||||
{
|
||||
Dictionary<long, PersonContainer> results = [];
|
||||
return new(results);
|
||||
}
|
||||
|
||||
public ReadOnlyDictionary<long, List<int>> GetPersonKeyToIds()
|
||||
{
|
||||
Dictionary<long, List<int>> results = [];
|
||||
|
@ -447,6 +447,9 @@ internal abstract class MapLogic
|
||||
FileHolder fileHolder;
|
||||
List<string> distinct = [];
|
||||
PersonBirthday? personBirthday;
|
||||
PersonContainer? personContainer;
|
||||
string? personDisplayDirectoryName;
|
||||
ReadOnlyDictionary<long, PersonContainer> keyValuePairs = PersonContainer.Extract(personContainers);
|
||||
results.AddRange(GetDisplayDirectoryAllFiles(configuration.FacesFileNameExtension, configuration.PersonBirthdayFormat, personContainers));
|
||||
foreach (Record record in records)
|
||||
{
|
||||
@ -455,9 +458,13 @@ internal abstract class MapLogic
|
||||
continue;
|
||||
if (distinct.Contains(record.MappedFaceFilePath.Name))
|
||||
continue;
|
||||
distinct.Add(record.MappedFaceFilePath.Name);
|
||||
personKey = personBirthday.Value.Ticks;
|
||||
results.Add(new(personKey, record.PersonKeyFormatted, record.PersonDisplayDirectoryName, record.DirectoryNumber, record.MappedFaceFilePath));
|
||||
distinct.Add(record.MappedFaceFilePath.Name);
|
||||
if (!keyValuePairs.TryGetValue(personKey, out personContainer))
|
||||
personDisplayDirectoryName = record.PersonDisplayDirectoryName;
|
||||
else
|
||||
personDisplayDirectoryName = personContainer.DisplayDirectoryName;
|
||||
results.Add(new(personKey, record.PersonKeyFormatted, personDisplayDirectoryName, record.DirectoryNumber, record.MappedFaceFilePath));
|
||||
}
|
||||
for (int i = results.Count - 1; i > -1; i--)
|
||||
{
|
||||
|
@ -39,6 +39,18 @@ public record PersonContainer(int? ApproximateYears,
|
||||
public static bool? IsKeyIsMaxBirthday(PersonContainer personContainer) =>
|
||||
personContainer.Birthdays is null || personContainer.Key is null ? null : personContainer.Key.Value == personContainer.Birthdays.First().Value.Ticks;
|
||||
|
||||
public static ReadOnlyDictionary<long, PersonContainer> Extract(ReadOnlyCollection<PersonContainer> personContainers)
|
||||
{
|
||||
Dictionary<long, PersonContainer> results = [];
|
||||
foreach (PersonContainer personContainer in personContainers)
|
||||
{
|
||||
if (personContainer.Key is null || results.ContainsKey(personContainer.Key.Value))
|
||||
continue;
|
||||
results.Add(personContainer.Key.Value, personContainer);
|
||||
}
|
||||
return results.AsReadOnly();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[JsonSourceGenerationOptions(WriteIndented = true, DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull)]
|
||||
|
Loading…
x
Reference in New Issue
Block a user