removed-person

This commit is contained in:
2023-08-05 09:35:38 -07:00
parent 9686b93617
commit 9fd34adcc1
104 changed files with 29 additions and 2151 deletions

View File

@ -1,5 +1,3 @@
using System.Collections.ObjectModel;
namespace View_by_Distance.Shared.Models.Stateless.Methods;
internal abstract class PersonContainer
@ -92,13 +90,12 @@ internal abstract class PersonContainer
return results;
}
private static List<Models.PersonContainer> GetPersonContainersCollections(string facesFileNameExtension, char[] personCharacters, PersonDirectory personDirectory, char numberSign, string personDisplayDirectory, string personDisplayDirectoryName, int? approximateYears, List<(string PersonKeyFormatted, Models.PersonBirthday PersonBirthday)> collection)
private static List<Models.PersonContainer> GetPersonContainersCollections(string facesFileNameExtension, PersonDirectory personDirectory, char numberSign, string personDisplayDirectory, string personDisplayDirectoryName, int? approximateYears, List<(string PersonKeyFormatted, Models.PersonBirthday PersonBirthday)> collection)
{
List<Models.PersonContainer> results = new();
long personKey;
string[] files;
const int zero = 0;
Models.Person person;
string personKeyDirectory;
Models.PersonContainer personContainer;
Models.PersonBirthday[] orderedPersonBirthdays;
@ -119,8 +116,7 @@ internal abstract class PersonContainer
if (!files.Any())
continue;
personDisplayDirectoryAllFiles.AddRange(files.Where(l => l.EndsWith(".rel")));
person = IPerson.GetPerson(personCharacters, personDisplayDirectoryName, personDisplayDirectoryAllFiles.ToArray(), personKey);
personContainer = new(approximateYears, orderedPersonBirthdays, personDisplayDirectoryAllFiles.ToArray(), personDisplayDirectoryName, personKey, person, personDirectory);
personContainer = new(approximateYears, orderedPersonBirthdays, personDisplayDirectoryAllFiles.ToArray(), personDisplayDirectoryName, personKey, personDirectory);
results.Add(personContainer);
}
return results;
@ -177,7 +173,7 @@ internal abstract class PersonContainer
continue;
approximateYears = Age.GetApproximateYears(personCharacters, personDisplayDirectoryName);
personKeyDirectories = Directory.GetDirectories(personDisplayDirectory, "*", SearchOption.TopDirectoryOnly);
collection = PersonBirthday.GetPersonBirthdays(personBirthdayFormat, personKeyDirectories, personDisplayDirectory, personDisplayDirectoryName);
collection = PersonBirthday.GetPersonBirthdays(personBirthdayFormat, personKeyDirectories, personDisplayDirectoryName);
if (personDisplayDirectoryName.Contains('^'))
{
minusOne = Path.GetDirectoryName(personDisplayDirectory);
@ -189,7 +185,7 @@ internal abstract class PersonContainer
continue;
if (collection.Count > 0)
{
personContainers = GetPersonContainersCollections(facesFileNameExtension, personCharacters, personDirectory, numberSign, personDisplayDirectory, personDisplayDirectoryName, approximateYears, collection);
personContainers = GetPersonContainersCollections(facesFileNameExtension, personDirectory, numberSign, personDisplayDirectory, personDisplayDirectoryName, approximateYears, collection);
results.AddRange(personContainers);
}
else
@ -264,7 +260,7 @@ internal abstract class PersonContainer
groupDirectoryName = Path.GetFileName(groupDirectory);
if (personCharacters[i] != groupDirectoryName.First())
continue;
(changes, collection) = GetPersonContainersInnerGroups( personBirthdayFormat, facesFileNameExtension, personCharacters, groupDirectory, groupDirectoryName);
(changes, collection) = GetPersonContainersInnerGroups(personBirthdayFormat, facesFileNameExtension, personCharacters, groupDirectory, groupDirectoryName);
allChanges.AddRange(changes);
personContainers.AddRange(collection);
}
@ -296,31 +292,13 @@ internal abstract class PersonContainer
return results;
}
internal static List<(long?, string)> GetDisplay(string personBirthdayFormat, Models.PersonContainer personContainer)
{
List<(long?, string)> results = new();
string personKeyFormatted;
Models.PersonContainer pc = personContainer;
if (pc.Person is null || pc.Key is null || pc.Birthdays is null || !pc.Birthdays.Any())
results.Add(new(pc.Key, string.Concat('\t', pc.Key, '\t', pc.ApproximateYears, '\t', pc.DisplayDirectoryName)));
else
{
foreach (Models.PersonBirthday personBirthday in pc.Birthdays)
{
personKeyFormatted = IPersonBirthday.GetFormatted(personBirthdayFormat, personBirthday);
results.Add(new(pc.Key, string.Concat(personKeyFormatted, '\t', pc.Key, '\t', pc.ApproximateYears, '\t', pc.DisplayDirectoryName)));
}
}
return results;
}
internal static List<long> GetPersonKeys(IEnumerable<Models.PersonContainer> personContainers)
{
List<long> results = new();
long personKey;
foreach (Models.PersonContainer personContainer in personContainers)
{
if (personContainer.Person is null || personContainer.Key is null || personContainer.Birthdays is null || personContainer.Birthdays.Length == 0)
if (personContainer.Key is null || personContainer.Birthdays is null || personContainer.Birthdays.Length == 0)
continue;
foreach (Models.PersonBirthday personBirthday in personContainer.Birthdays)
{
@ -331,24 +309,4 @@ internal abstract class PersonContainer
return results;
}
internal static ReadOnlyDictionary<string, string> GetPersonKeyFormattedToPersonFullName(string personBirthdayFormat, ReadOnlyCollection<Models.PersonContainer> personContainers)
{
Dictionary<string, string> results = new();
string? value;
string personFullName;
string personKeyFormatted;
foreach (Models.PersonContainer personContainer in personContainers)
{
if (personContainer.Key is null || personContainer.Birthdays is null || personContainer.Person is null || personContainer.PersonDirectory is null || personContainer.Birthdays.Length == 0)
continue;
personKeyFormatted = IPersonBirthday.GetFormatted(personBirthdayFormat, personContainer.Key.Value);
personFullName = PersonName.GetFullName(personContainer.Person.Name);
if (!results.TryGetValue(personKeyFormatted, out value))
results.Add(personKeyFormatted, personFullName);
else if (value != personFullName)
throw new NotSupportedException();
}
return new(results);
}
}