CreateTree
This commit is contained in:
@ -28,7 +28,7 @@ public class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
private readonly string _EDistanceContentTicksDirectory;
|
||||
private readonly Shared.Models.Properties.IPropertyConfiguration _PropertyConfiguration;
|
||||
|
||||
public MapLogic(int maxDegreeOfParallelism, Shared.Models.Properties.IPropertyConfiguration propertyConfiguration, Configuration? configuration, long ticks, PersonContainer[] personContainers, string a2PeopleSingletonDirectory, string eDistanceContentDirectory)
|
||||
public MapLogic(int maxDegreeOfParallelism, Shared.Models.Properties.IPropertyConfiguration propertyConfiguration, Configuration? configuration, PersonContainer[] personContainers, long ticks, string a2PeopleSingletonDirectory, string eDistanceContentDirectory)
|
||||
{
|
||||
_Ticks = ticks;
|
||||
_Configuration = configuration;
|
||||
@ -102,37 +102,6 @@ public class MapLogic : Shared.Models.Methods.IMapLogic
|
||||
return result;
|
||||
}
|
||||
|
||||
public void CreateTree(long ticks, string a2PeopleContentDirectory)
|
||||
{
|
||||
if (_Configuration is null)
|
||||
throw new NullReferenceException(nameof(_Configuration));
|
||||
string by;
|
||||
string directory;
|
||||
string[] segments;
|
||||
const int zero = 0;
|
||||
string personKeyFormatted;
|
||||
PersonBirthday personBirthday;
|
||||
string rootDirectory = Path.Combine(a2PeopleContentDirectory, $"{ticks}-Tree");
|
||||
foreach (KeyValuePair<long, PersonContainer> personKeyToPersonContainer in _PersonKeyToPersonContainer)
|
||||
{
|
||||
if (personKeyToPersonContainer.Value.Key is null || personKeyToPersonContainer.Value.Birthdays is null || !personKeyToPersonContainer.Value.Birthdays.Any())
|
||||
continue;
|
||||
if (personKeyToPersonContainer.Value.DisplayDirectoryName == _Configuration.MappingDefaultName)
|
||||
continue;
|
||||
personBirthday = personKeyToPersonContainer.Value.Birthdays[zero];
|
||||
personKeyFormatted = IPersonBirthday.GetFormatted(_Configuration.PersonBirthdayFormat, personBirthday);
|
||||
by = IPersonBirthday.IsCounterPersonBirthday(personBirthday) ? _PropertyConfiguration.ResultAllInOne : "People";
|
||||
segments = personKeyToPersonContainer.Value.DisplayDirectoryName.Split(_Configuration.PersonCharacters.ToArray());
|
||||
if (segments.Length < 2)
|
||||
directory = Path.Combine(rootDirectory, $"000 {personKeyFormatted} {personKeyToPersonContainer.Value.DisplayDirectoryName}");
|
||||
else
|
||||
directory = Path.Combine(rootDirectory, $"{segments[1].PadLeft(3, '0')} {personKeyFormatted} {personKeyToPersonContainer.Value.DisplayDirectoryName}");
|
||||
if (Directory.Exists(directory))
|
||||
continue;
|
||||
_ = Directory.CreateDirectory(directory);
|
||||
}
|
||||
}
|
||||
|
||||
public Dictionary<long, List<int>> GetPersonKeyToIds()
|
||||
{
|
||||
Dictionary<long, List<int>> results = new();
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
Reference in New Issue
Block a user