Removed CopyAtLeastOneMappedFiles
ReadOnlyCollection
This commit is contained in:
@ -168,7 +168,7 @@ internal abstract class MapLogic
|
||||
if (files.Length != 4)
|
||||
continue;
|
||||
collection = files.Select(l => new FileInfo(l)).ToArray();
|
||||
isDefault = alphaDirectoryName.First() == 'X' && IPersonBirthday.IsCounterPersonYear(personKeyFormatted[..4]);
|
||||
isDefault = IPerson.IsDefaultName(alphaDirectoryName) && IPersonBirthday.IsCounterPersonYear(personKeyFormatted[..4]);
|
||||
if (isDefault)
|
||||
facesFileNames = (from l in collection where l.Extension == configuration.FacesFileNameExtension select l.FullName).ToArray();
|
||||
else
|
||||
@ -321,7 +321,7 @@ internal abstract class MapLogic
|
||||
{
|
||||
directoryNumber++;
|
||||
personDisplayDirectoryName = Path.GetFileName(personNameDirectory);
|
||||
isDefault = personDisplayDirectoryName.First() == 'X' && IPersonBirthday.IsCounterPersonYear(personKeyFormatted[..4]);
|
||||
isDefault = IPerson.IsDefaultName(personDisplayDirectoryName) && IPersonBirthday.IsCounterPersonYear(personKeyFormatted[..4]);
|
||||
if (isDefault && personDisplayDirectoryName.Length == 1)
|
||||
{
|
||||
if (personKeyFormatted.Length != configuration.PersonBirthdayFormat.Length || !DateTime.TryParseExact(personKeyFormatted, configuration.PersonBirthdayFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
|
||||
@ -726,8 +726,10 @@ internal abstract class MapLogic
|
||||
}
|
||||
}
|
||||
|
||||
internal static void PossiblyRebuildPersonContainers(Configuration configuration, string? a2PeopleSingletonDirectory, List<(PersonKeyFormattedIdThenWholePercentages, PersonContainer)> possiblyNewPersonDisplayDirectoryNamesAndPersonContainer)
|
||||
internal static void PossiblyRebuildPersonContainers(Configuration configuration, long ticks, string? a2PeopleSingletonDirectory, ReadOnlyDictionary<long, int> readOnlyPersonKeyToCount, ReadOnlyCollection<(PersonKeyFormattedIdThenWholePercentages, PersonContainer)> possiblyNewPersonDisplayDirectoryNamesAndPersonContainer)
|
||||
{
|
||||
int count;
|
||||
long personKey;
|
||||
bool[] matches;
|
||||
string fileName;
|
||||
string checkFile;
|
||||
@ -737,6 +739,7 @@ internal abstract class MapLogic
|
||||
List<string> distinct = new();
|
||||
PersonBirthday personBirthday;
|
||||
string personDisplayDirectory;
|
||||
DateTime dateTime = new(ticks);
|
||||
string personKeyFormattedDirectory;
|
||||
foreach ((PersonKeyFormattedIdThenWholePercentages personKeyFormattedIdThenWholePercentages, PersonContainer personContainer) in possiblyNewPersonDisplayDirectoryNamesAndPersonContainer)
|
||||
{
|
||||
@ -745,13 +748,8 @@ internal abstract class MapLogic
|
||||
if (a2PeopleSingletonDirectory is null || personContainer.Key is null || personContainer.Birthdays is null || personContainer.PersonDirectory is null || personContainer.Birthdays.Length == 0)
|
||||
continue;
|
||||
fileName = $"{Path.GetFileName(personKeyFormattedIdThenWholePercentages.MappedFaceFile)}{configuration.FacesHiddenFileNameExtension}";
|
||||
matches = (from l in personContainer.DisplayDirectoryAllFiles where l.EndsWith(fileName) select true).ToArray();
|
||||
if (matches.Length > 0)
|
||||
continue;
|
||||
matches = (from l in personContainer.DisplayDirectoryAllFiles where l.EndsWith(configuration.FacesHiddenFileNameExtension) select true).ToArray();
|
||||
if (matches.Length > 0)
|
||||
continue;
|
||||
personBirthday = personContainer.Birthdays[zero];
|
||||
personKey = personBirthday.Value.Ticks;
|
||||
personKeyFormatted = IPersonBirthday.GetFormatted(configuration.PersonBirthdayFormat, personBirthday);
|
||||
personDisplayDirectory = Path.Combine(a2PeopleSingletonDirectory, personContainer.PersonDirectory.Char.ToString(), personContainer.PersonDirectory.Group, personContainer.DisplayDirectoryName);
|
||||
personKeyFormattedDirectory = Path.GetFullPath(Path.Combine(personDisplayDirectory, personKeyFormatted));
|
||||
@ -760,6 +758,15 @@ internal abstract class MapLogic
|
||||
throw new NotSupportedException();
|
||||
if (!Directory.Exists(personKeyFormattedDirectory))
|
||||
_ = Directory.CreateDirectory(personKeyFormattedDirectory);
|
||||
_ = readOnlyPersonKeyToCount.TryGetValue(personKey, out count);
|
||||
_ = Directory.CreateDirectory(Path.Combine(personDisplayDirectory, count.ToString("0000")));
|
||||
Directory.SetLastWriteTime(personDisplayDirectory, dateTime.AddMinutes(count));
|
||||
matches = (from l in personContainer.DisplayDirectoryAllFiles where l.EndsWith(fileName) select true).ToArray();
|
||||
if (matches.Length > 0)
|
||||
continue;
|
||||
matches = (from l in personContainer.DisplayDirectoryAllFiles where l.EndsWith(configuration.FacesHiddenFileNameExtension) select true).ToArray();
|
||||
if (matches.Length > 0)
|
||||
continue;
|
||||
if (!File.Exists(personKeyFormattedIdThenWholePercentages.MappedFaceFile))
|
||||
continue;
|
||||
checkFile = Path.Combine(personKeyFormattedDirectory, $"{Path.GetFileName(personKeyFormattedIdThenWholePercentages.MappedFaceFile)}{configuration.FacesHiddenFileNameExtension}");
|
||||
@ -790,6 +797,8 @@ internal abstract class MapLogic
|
||||
DateTime dateTime = DateTime.Now;
|
||||
for (int i = 1; i < 5; i++)
|
||||
_ = IPath.DeleteEmptyDirectories(eDistanceContentDirectory);
|
||||
if (!Directory.Exists(eDistanceContentDirectory))
|
||||
_ = Directory.CreateDirectory(eDistanceContentDirectory);
|
||||
string[] ticksDirectories = Directory.GetDirectories(eDistanceContentDirectory, "*", SearchOption.TopDirectoryOnly);
|
||||
foreach (string ticksDirectory in ticksDirectories)
|
||||
{
|
||||
@ -1227,7 +1236,7 @@ internal abstract class MapLogic
|
||||
return results;
|
||||
}
|
||||
|
||||
internal static Mapping[] GetSelectedMappingCollection(List<Face> faces)
|
||||
internal static Mapping[] GetSelectedMappingCollection(ReadOnlyCollection<Face> faces)
|
||||
{
|
||||
Mapping[] results;
|
||||
IEnumerable<Mapping> collection = from l in faces orderby l.Mapping?.MappingFromItem.Id select l.Mapping;
|
||||
@ -1235,7 +1244,7 @@ internal abstract class MapLogic
|
||||
return results;
|
||||
}
|
||||
|
||||
internal static List<Face> GetFaces(List<Item> items)
|
||||
internal static ReadOnlyCollection<Face> GetFaces(ReadOnlyCollection<Item> items)
|
||||
{
|
||||
List<Face> results = new();
|
||||
foreach (Item item in items)
|
||||
@ -1249,18 +1258,26 @@ internal abstract class MapLogic
|
||||
results.Add(face);
|
||||
}
|
||||
}
|
||||
return results;
|
||||
return new(results);
|
||||
}
|
||||
|
||||
internal static Mapping[] GetSelectedMappingCollection(List<Item> items)
|
||||
internal static Mapping[] GetSelectedMappingCollection(ReadOnlyCollection<Item> items)
|
||||
{
|
||||
Mapping[] results;
|
||||
List<Face> faces = GetFaces(items);
|
||||
ReadOnlyCollection<Face> faces = GetFaces(items);
|
||||
results = GetSelectedMappingCollection(faces);
|
||||
return results;
|
||||
}
|
||||
|
||||
internal static Dictionary<int, Dictionary<int, Mapping>> GetIdToWholePercentagesToFace(Mapping[] mappingCollection)
|
||||
private static ReadOnlyDictionary<int, ReadOnlyDictionary<int, Mapping>> GetReadOnly(Dictionary<int, Dictionary<int, Mapping>> keyValuePairs)
|
||||
{
|
||||
Dictionary<int, ReadOnlyDictionary<int, Mapping>> results = new();
|
||||
foreach (KeyValuePair<int, Dictionary<int, Mapping>> keyValuePair in keyValuePairs)
|
||||
results.Add(keyValuePair.Key, new(keyValuePair.Value));
|
||||
return new(results);
|
||||
}
|
||||
|
||||
internal static ReadOnlyDictionary<int, ReadOnlyDictionary<int, Mapping>> GetIdToWholePercentagesToFace(ReadOnlyCollection<Mapping> mappingCollection)
|
||||
{
|
||||
Dictionary<int, Dictionary<int, Mapping>> results = new();
|
||||
Dictionary<int, Mapping>? keyValuePairs;
|
||||
@ -1278,7 +1295,7 @@ internal abstract class MapLogic
|
||||
continue;
|
||||
keyValuePairs.Add(mapping.MappingFromLocation.WholePercentages, mapping);
|
||||
}
|
||||
return results;
|
||||
return GetReadOnly(results);
|
||||
}
|
||||
|
||||
private static string? TryToFind(char[] personCharacters, string a2PeopleSingletonDirectory, List<(string Directory, string DirectoryName, string DirectoryNameSplitFirst)> a2PeopleSingletonDirectories, string file, string path)
|
||||
|
@ -1,3 +1,5 @@
|
||||
using System.Collections.ObjectModel;
|
||||
|
||||
namespace View_by_Distance.Map.Models.Stateless.Methods;
|
||||
|
||||
public interface IMapLogic
|
||||
@ -8,24 +10,24 @@ public interface IMapLogic
|
||||
static Dictionary<int, List<long>> GetIdToPersonKeys(Dictionary<long, List<int>> personKeyToIds) =>
|
||||
MapLogic.GetIdToPersonKeys(personKeyToIds);
|
||||
|
||||
List<Shared.Models.Face> TestStatic_GetFaces(List<Shared.Models.Item> items) =>
|
||||
ReadOnlyCollection<Shared.Models.Face> TestStatic_GetFaces(ReadOnlyCollection<Shared.Models.Item> items) =>
|
||||
GetFaces(items);
|
||||
static List<Shared.Models.Face> GetFaces(List<Shared.Models.Item> items) =>
|
||||
static ReadOnlyCollection<Shared.Models.Face> GetFaces(ReadOnlyCollection<Shared.Models.Item> items) =>
|
||||
MapLogic.GetFaces(items);
|
||||
|
||||
Shared.Models.Mapping[] TestStatic_GetSelectedMappingCollection(List<Shared.Models.Item> items) =>
|
||||
Shared.Models.Mapping[] TestStatic_GetSelectedMappingCollection(ReadOnlyCollection<Shared.Models.Item> items) =>
|
||||
GetSelectedMappingCollection(items);
|
||||
static Shared.Models.Mapping[] GetSelectedMappingCollection(List<Shared.Models.Item> items) =>
|
||||
static Shared.Models.Mapping[] GetSelectedMappingCollection(ReadOnlyCollection<Shared.Models.Item> items) =>
|
||||
MapLogic.GetSelectedMappingCollection(items);
|
||||
|
||||
Shared.Models.Mapping[] TestStatic_GetSelectedMappingCollection(List<Shared.Models.Face> faces) =>
|
||||
Shared.Models.Mapping[] TestStatic_GetSelectedMappingCollection(ReadOnlyCollection<Shared.Models.Face> faces) =>
|
||||
GetSelectedMappingCollection(faces);
|
||||
static Shared.Models.Mapping[] GetSelectedMappingCollection(List<Shared.Models.Face> faces) =>
|
||||
static Shared.Models.Mapping[] GetSelectedMappingCollection(ReadOnlyCollection<Shared.Models.Face> faces) =>
|
||||
MapLogic.GetSelectedMappingCollection(faces);
|
||||
|
||||
Dictionary<int, Dictionary<int, Shared.Models.Mapping>> TestStatic_GetIdToWholePercentagesToFace(Shared.Models.Mapping[] mappingCollection) =>
|
||||
ReadOnlyDictionary<int, ReadOnlyDictionary<int, Shared.Models.Mapping>> TestStatic_GetIdToWholePercentagesToFace(ReadOnlyCollection<Shared.Models.Mapping> mappingCollection) =>
|
||||
GetIdToWholePercentagesToFace(mappingCollection);
|
||||
static Dictionary<int, Dictionary<int, Shared.Models.Mapping>> GetIdToWholePercentagesToFace(Shared.Models.Mapping[] mappingCollection) =>
|
||||
static ReadOnlyDictionary<int, ReadOnlyDictionary<int, Shared.Models.Mapping>> GetIdToWholePercentagesToFace(ReadOnlyCollection<Shared.Models.Mapping> mappingCollection) =>
|
||||
MapLogic.GetIdToWholePercentagesToFace(mappingCollection);
|
||||
|
||||
List<(string, long)> TestStatic_GetJLinkDirectories(string genealogicalDataCommunicationFile, string[] jLinks, string personBirthdayFormat, char[] personCharacters, string a2PeopleSingletonDirectory, string a2PeopleContentDirectory) =>
|
||||
|
Reference in New Issue
Block a user