Copy Manual Files
This commit is contained in:
@ -8,20 +8,20 @@ public class PersonContainer : Properties.IPersonContainer
|
||||
|
||||
public int? ApproximateYears { init; get; }
|
||||
public Person? Person { init; get; }
|
||||
public PersonBirthday[]? PersonBirthdays { init; get; }
|
||||
public string[] PersonDisplayDirectoryAllFiles { init; get; }
|
||||
public string PersonDisplayDirectoryName { init; get; }
|
||||
public long? PersonKey { init; get; }
|
||||
public PersonBirthday[]? Birthdays { init; get; }
|
||||
public string[] DisplayDirectoryAllFiles { init; get; }
|
||||
public string DisplayDirectoryName { init; get; }
|
||||
public long? Key { init; get; }
|
||||
|
||||
[JsonConstructor]
|
||||
public PersonContainer(int? approximateYears, Person? person, PersonBirthday[]? personBirthdays, string[] personDisplayDirectoryAllFiles, string personDisplayDirectoryName, long? personKey)
|
||||
{
|
||||
ApproximateYears = approximateYears;
|
||||
Person = person;
|
||||
PersonBirthdays = personBirthdays;
|
||||
PersonDisplayDirectoryAllFiles = personDisplayDirectoryAllFiles;
|
||||
PersonDisplayDirectoryName = personDisplayDirectoryName;
|
||||
PersonKey = personKey;
|
||||
Birthdays = personBirthdays;
|
||||
DisplayDirectoryAllFiles = personDisplayDirectoryAllFiles;
|
||||
DisplayDirectoryName = personDisplayDirectoryName;
|
||||
Key = personKey;
|
||||
}
|
||||
|
||||
public PersonContainer(int? approximateYears, string[] personDisplayDirectoryAllFiles, string personDisplayDirectoryName) :
|
||||
|
@ -5,9 +5,9 @@ public interface IPersonContainer
|
||||
|
||||
public int? ApproximateYears { init; get; }
|
||||
public Person? Person { init; get; }
|
||||
public PersonBirthday[]? PersonBirthdays { init; get; }
|
||||
public string[] PersonDisplayDirectoryAllFiles { init; get; }
|
||||
public string PersonDisplayDirectoryName { init; get; }
|
||||
public long? PersonKey { init; get; }
|
||||
public PersonBirthday[]? Birthdays { init; get; }
|
||||
public string[] DisplayDirectoryAllFiles { init; get; }
|
||||
public string DisplayDirectoryName { init; get; }
|
||||
public long? Key { init; get; }
|
||||
|
||||
}
|
@ -5,9 +5,9 @@ public interface IPersonContainer
|
||||
|
||||
// ...
|
||||
|
||||
List<Models.PersonContainer> TestStatic_GetPersonContainers(Properties.IStorage storage, string personBirthdayFormat) =>
|
||||
Models.PersonContainer[] TestStatic_GetPersonContainers(Properties.IStorage storage, string personBirthdayFormat) =>
|
||||
GetPersonContainers(storage, personBirthdayFormat);
|
||||
static List<Models.PersonContainer> GetPersonContainers(Properties.IStorage storage, string personBirthdayFormat) =>
|
||||
static Models.PersonContainer[] GetPersonContainers(Properties.IStorage storage, string personBirthdayFormat) =>
|
||||
PersonContainer.GetPersonContainers(storage, personBirthdayFormat);
|
||||
|
||||
}
|
@ -3,9 +3,9 @@ namespace View_by_Distance.Shared.Models.Stateless.Methods;
|
||||
internal abstract class PersonContainer
|
||||
{
|
||||
|
||||
private static List<Models.PersonContainer> GetPersonContainersCollections(string personBirthdayFormat, char[] chars, string personDisplayDirectory, string personDisplayDirectoryName, string[] personKeyDirectories, int? approximateYears, List<Models.PersonBirthday> collections)
|
||||
private static List<(long?, Models.PersonContainer)> GetPersonContainersCollections(string personBirthdayFormat, char[] chars, string personDisplayDirectory, string personDisplayDirectoryName, string[] personKeyDirectories, int? approximateYears, List<Models.PersonBirthday> collections)
|
||||
{
|
||||
List<Models.PersonContainer> results = new();
|
||||
List<(long?, Models.PersonContainer)> results = new();
|
||||
long personKey;
|
||||
string[] segments;
|
||||
const int zero = 0;
|
||||
@ -25,7 +25,7 @@ internal abstract class PersonContainer
|
||||
segments = personDisplayDirectoryName.Split(chars);
|
||||
person = IPerson.GetPerson(personKey, segments);
|
||||
personContainer = new(approximateYears, person, personBirthdays, personDisplayDirectoryAllFiles, personDisplayDirectoryName, personKey);
|
||||
results.Add(personContainer);
|
||||
results.Add(new(personKey, personContainer));
|
||||
}
|
||||
return results;
|
||||
}
|
||||
@ -38,12 +38,13 @@ internal abstract class PersonContainer
|
||||
return result;
|
||||
}
|
||||
|
||||
private static List<Models.PersonContainer> GetPersonContainersGroup(string personBirthdayFormat, char[] chars, string[] personDisplayDirectories)
|
||||
private static List<(long?, Models.PersonContainer)> GetPersonContainersGroup(string personBirthdayFormat, char[] chars, string[] personDisplayDirectories)
|
||||
{
|
||||
List<Models.PersonContainer> results = new();
|
||||
List<(long?, Models.PersonContainer)> results = new();
|
||||
int? approximateYears;
|
||||
string[] personKeyDirectories;
|
||||
string? personDisplayDirectoryName;
|
||||
Models.PersonContainer personContainer;
|
||||
List<Models.PersonBirthday> collections;
|
||||
foreach (string personDisplayDirectory in personDisplayDirectories)
|
||||
{
|
||||
@ -53,36 +54,41 @@ internal abstract class PersonContainer
|
||||
approximateYears = Age.GetApproximateYears(personDisplayDirectoryName, chars);
|
||||
personKeyDirectories = Directory.GetDirectories(personDisplayDirectory, "*", SearchOption.TopDirectoryOnly);
|
||||
collections = PersonBirthday.GetPersonBirthdays(personBirthdayFormat, personKeyDirectories, personDisplayDirectory);
|
||||
if (!collections.Any())
|
||||
results.Add(GetPersonContainer(personDisplayDirectory, personDisplayDirectoryName, approximateYears));
|
||||
else
|
||||
if (collections.Any())
|
||||
results.AddRange(GetPersonContainersCollections(personBirthdayFormat, chars, personDisplayDirectory, personDisplayDirectoryName, personKeyDirectories, approximateYears, collections));
|
||||
else
|
||||
{
|
||||
personContainer = GetPersonContainer(personDisplayDirectory, personDisplayDirectoryName, approximateYears);
|
||||
results.Add(new(null, personContainer));
|
||||
}
|
||||
}
|
||||
return results;
|
||||
}
|
||||
|
||||
private static List<Models.PersonContainer> GetPersonContainersGroups(string personBirthdayFormat, char[] chars, string[] groupDirectories)
|
||||
private static Models.PersonContainer[] GetPersonContainersGroups(string personBirthdayFormat, char[] chars, string[] groupDirectories)
|
||||
{
|
||||
List<Models.PersonContainer> results = new();
|
||||
Models.PersonContainer[] results;
|
||||
const int zero = 0;
|
||||
string groupDirectoryName;
|
||||
string[] personDisplayDirectories;
|
||||
List<Models.PersonContainer> personContainers;
|
||||
List<(long?, Models.PersonContainer)> collection;
|
||||
List<(long? PersonKey, Models.PersonContainer PersonContainer)> personContainers = new();
|
||||
foreach (string groupDirectory in groupDirectories)
|
||||
{
|
||||
groupDirectoryName = Path.GetFileName(groupDirectory);
|
||||
if (!chars.Contains(groupDirectoryName[zero]))
|
||||
continue;
|
||||
personDisplayDirectories = Directory.GetDirectories(groupDirectory, "*", SearchOption.TopDirectoryOnly);
|
||||
personContainers = GetPersonContainersGroup(personBirthdayFormat, chars, personDisplayDirectories);
|
||||
results.AddRange(personContainers);
|
||||
collection = GetPersonContainersGroup(personBirthdayFormat, chars, personDisplayDirectories);
|
||||
personContainers.AddRange(collection);
|
||||
}
|
||||
results = (from l in personContainers orderby l.PersonKey is not null, l.PersonKey select l.PersonContainer).ToArray();
|
||||
return results;
|
||||
}
|
||||
|
||||
internal static List<Models.PersonContainer> GetPersonContainers(Properties.IStorage storage, string personBirthdayFormat)
|
||||
internal static Models.PersonContainer[] GetPersonContainers(Properties.IStorage storage, string personBirthdayFormat)
|
||||
{
|
||||
List<Models.PersonContainer> results;
|
||||
Models.PersonContainer[] results;
|
||||
char[] chars = IAge.GetChars();
|
||||
string a2PeopleSingletonDirectory = Path.Combine(storage.PeopleRootDirectory, "{}");
|
||||
if (!Directory.Exists(a2PeopleSingletonDirectory))
|
||||
@ -96,7 +102,7 @@ internal abstract class PersonContainer
|
||||
}
|
||||
string[] groupDirectories = Directory.GetDirectories(a2PeopleSingletonDirectory, "*", SearchOption.TopDirectoryOnly);
|
||||
if (!groupDirectories.Any())
|
||||
results = new();
|
||||
results = Array.Empty<Models.PersonContainer>();
|
||||
else
|
||||
results = GetPersonContainersGroups(personBirthdayFormat, chars, groupDirectories);
|
||||
return results;
|
||||
|
Reference in New Issue
Block a user