NonSpecificPeopleCollection now checks every hour
No longer using default if not any _NotMappedPersonContainers
This commit is contained in:
parent
1594783c7d
commit
5b9e32bce6
@ -339,17 +339,14 @@ public class MapLogic : Shared.Models.Methods.IMapLogic
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private string GetDirectory(bool saveIndividually, int padLeft, string? segmentC, string by, MappingFromItem mappingFromItem, SortingContainer sortingContainer)
|
private string? GetDirectory(Configuration configuration, bool saveIndividually, int padLeft, string? segmentC, string by, MappingFromItem mappingFromItem)
|
||||||
{
|
{
|
||||||
if (_Configuration is null)
|
string? result = null;
|
||||||
throw new NullReferenceException(nameof(_Configuration));
|
|
||||||
string result;
|
|
||||||
const int zero = 0;
|
const int zero = 0;
|
||||||
string mappingSegmentB;
|
string mappingSegmentB;
|
||||||
string personKeyFormatted;
|
string personKeyFormatted;
|
||||||
PersonBirthday personBirthday;
|
PersonBirthday personBirthday;
|
||||||
PersonContainer personContainer;
|
PersonContainer personContainer;
|
||||||
result = Path.Combine(_EDistanceContentTicksDirectory, by, sortingContainer.Sorting.Id.ToString(), sortingContainer.Sorting.WholePercentages.ToString());
|
|
||||||
for (int i = _NotMappedPersonContainers.Count - 1; i > 0; i--)
|
for (int i = _NotMappedPersonContainers.Count - 1; i > 0; i--)
|
||||||
{
|
{
|
||||||
personContainer = _NotMappedPersonContainers[i];
|
personContainer = _NotMappedPersonContainers[i];
|
||||||
@ -357,7 +354,7 @@ public class MapLogic : Shared.Models.Methods.IMapLogic
|
|||||||
continue;
|
continue;
|
||||||
personBirthday = personContainer.Birthdays[zero];
|
personBirthday = personContainer.Birthdays[zero];
|
||||||
mappingSegmentB = Stateless.MapLogic.GetMappingSegmentB(_Ticks, personBirthday, personContainer.ApproximateYears, mappingFromItem);
|
mappingSegmentB = Stateless.MapLogic.GetMappingSegmentB(_Ticks, personBirthday, personContainer.ApproximateYears, mappingFromItem);
|
||||||
personKeyFormatted = IPersonBirthday.GetFormatted(_Configuration.PersonBirthdayFormat, personBirthday);
|
personKeyFormatted = IPersonBirthday.GetFormatted(configuration.PersonBirthdayFormat, personBirthday);
|
||||||
if (!saveIndividually || segmentC is null)
|
if (!saveIndividually || segmentC is null)
|
||||||
result = Path.Combine(_EDistanceContentTicksDirectory, by, personKeyFormatted, mappingSegmentB);
|
result = Path.Combine(_EDistanceContentTicksDirectory, by, personKeyFormatted, mappingSegmentB);
|
||||||
else
|
else
|
||||||
@ -380,7 +377,7 @@ public class MapLogic : Shared.Models.Methods.IMapLogic
|
|||||||
bool isByMapping;
|
bool isByMapping;
|
||||||
bool isBySorting;
|
bool isBySorting;
|
||||||
string checkFile;
|
string checkFile;
|
||||||
string directory;
|
string? directory;
|
||||||
string shortcutFile;
|
string shortcutFile;
|
||||||
Mapping? keyMapping;
|
Mapping? keyMapping;
|
||||||
string facesDirectory;
|
string facesDirectory;
|
||||||
@ -426,7 +423,9 @@ public class MapLogic : Shared.Models.Methods.IMapLogic
|
|||||||
if (distinct.Contains(mapping.SortingContainer.Sorting.Id))
|
if (distinct.Contains(mapping.SortingContainer.Sorting.Id))
|
||||||
continue;
|
continue;
|
||||||
ticks = DateTime.Now.Ticks;
|
ticks = DateTime.Now.Ticks;
|
||||||
directory = GetDirectory(saveIndividually, padLeft, mapping.SegmentC, by, mapping.MappingFromItem, mapping.SortingContainer);
|
directory = GetDirectory(_Configuration, saveIndividually, padLeft, mapping.SegmentC, by, mapping.MappingFromItem);
|
||||||
|
if (string.IsNullOrEmpty(directory))
|
||||||
|
continue;
|
||||||
personDirectory = Path.Combine(directory, $"Z]{ticks}");
|
personDirectory = Path.Combine(directory, $"Z]{ticks}");
|
||||||
if (saveIndividually)
|
if (saveIndividually)
|
||||||
{
|
{
|
||||||
|
@ -501,7 +501,48 @@ internal abstract class MapLogic
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<PersonContainer> GetNotMappedPersonContainers(Configuration configuration, ReadOnlyCollection<PersonContainer> personContainers, long[] personKeyCollection)
|
private static List<PersonContainer> GetNonSpecificPeopleCollection(Configuration configuration, long ticks, List<long> personKeys)
|
||||||
|
{
|
||||||
|
List<PersonContainer> results = new();
|
||||||
|
bool check;
|
||||||
|
Person person;
|
||||||
|
long personKey;
|
||||||
|
int? approximateYears = null;
|
||||||
|
PersonBirthday personBirthday;
|
||||||
|
PersonContainer personContainer;
|
||||||
|
string[] personDisplayDirectoryAllFiles = Array.Empty<string>();
|
||||||
|
DateTime incrementDate = new(configuration.PersonBirthdayFirstYear, 1, 1);
|
||||||
|
long oneHour = new DateTime(1, 1, 1, 1, 0, 0).Ticks - new DateTime(1, 1, 1).Ticks;
|
||||||
|
for (int i = 0; i < int.MaxValue; i++)
|
||||||
|
{
|
||||||
|
check = false;
|
||||||
|
personKey = incrementDate.Ticks;
|
||||||
|
incrementDate = incrementDate.AddDays(1);
|
||||||
|
if (incrementDate.Ticks > ticks)
|
||||||
|
break;
|
||||||
|
if (personKeys.Contains(personKey))
|
||||||
|
continue;
|
||||||
|
for (int j = 1; j < 24; j++)
|
||||||
|
{
|
||||||
|
if (personKeys.Contains(personKey + (oneHour * j)))
|
||||||
|
{
|
||||||
|
check = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (check)
|
||||||
|
continue;
|
||||||
|
personBirthday = IPersonBirthday.GetPersonBirthday(personKey + (oneHour * 2));
|
||||||
|
person = IPerson.GetPerson(configuration.MappingDefaultName, configuration.PersonCharacters.ToArray(), configuration.MappingDefaultName, personKey, personBirthday);
|
||||||
|
personContainer = new(approximateYears, new PersonBirthday[] { personBirthday }, personDisplayDirectoryAllFiles, configuration.MappingDefaultName, personKey, person);
|
||||||
|
results.Add(personContainer);
|
||||||
|
if (results.Count > 999)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<PersonContainer> GetNotMappedPersonContainers(Configuration configuration, long ticks, ReadOnlyCollection<PersonContainer> personContainers, long[] personKeyCollection)
|
||||||
{
|
{
|
||||||
List<PersonContainer> results = new();
|
List<PersonContainer> results = new();
|
||||||
List<PersonContainer> notMappedAndNotNamedPersonKeys = new();
|
List<PersonContainer> notMappedAndNotNamedPersonKeys = new();
|
||||||
@ -521,6 +562,8 @@ internal abstract class MapLogic
|
|||||||
notMappedAndWithNamedPersonKeys.Add(personContainer);
|
notMappedAndWithNamedPersonKeys.Add(personContainer);
|
||||||
}
|
}
|
||||||
results.AddRange(notMappedAndNotNamedPersonKeys);
|
results.AddRange(notMappedAndNotNamedPersonKeys);
|
||||||
|
if (results.Count == 0)
|
||||||
|
results.AddRange(GetNonSpecificPeopleCollection(configuration, ticks, personKeys));
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -866,7 +909,7 @@ internal abstract class MapLogic
|
|||||||
long[] personKeyCollection = (from l in nullablePersonKeyCollection where l is not null select l.Value).Distinct().ToArray();
|
long[] personKeyCollection = (from l in nullablePersonKeyCollection where l is not null select l.Value).Distinct().ToArray();
|
||||||
PossiblyRebuildPersonContainers(configuration, a2PeopleSingletonDirectory, personKeyFormattedToNewestPersonKeyFormatted, possiblyNewPersonDisplayDirectoryNamesAndPersonContainer);
|
PossiblyRebuildPersonContainers(configuration, a2PeopleSingletonDirectory, personKeyFormattedToNewestPersonKeyFormatted, possiblyNewPersonDisplayDirectoryNamesAndPersonContainer);
|
||||||
SetPersonKeyToPersonContainer(configuration, personContainers, personKeyCollection, personKeyToPersonContainer, personKeyToPersonContainerCollection);
|
SetPersonKeyToPersonContainer(configuration, personContainers, personKeyCollection, personKeyToPersonContainer, personKeyToPersonContainerCollection);
|
||||||
notMappedPersonContainers.AddRange(GetNotMappedPersonContainers(configuration, personContainers, personKeyCollection));
|
notMappedPersonContainers.AddRange(GetNotMappedPersonContainers(configuration, ticks, personContainers, personKeyCollection));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string GetMappingSegmentB(long ticks, PersonBirthday personBirthday, int? approximateYears, long dateTimeOriginalThenMinimumDateTimeTicks, bool? isWrongYear)
|
private static string GetMappingSegmentB(long ticks, PersonBirthday personBirthday, int? approximateYears, long dateTimeOriginalThenMinimumDateTimeTicks, bool? isWrongYear)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user