This commit is contained in:
2022-08-30 10:29:20 -07:00
parent 753eeaba2a
commit 7f717258d2
13 changed files with 284 additions and 216 deletions

View File

@ -1,5 +1,4 @@
using View_by_Distance.Shared.Models;
using View_by_Distance.Shared.Models.Stateless;
namespace View_by_Distance.Map.Models.Stateless;
@ -37,6 +36,7 @@ internal abstract class MapLogic
string key;
string dateKey;
bool? isWrongYear;
string personKey;
DateTime minimumDateTime;
DateTime dateTime = DateTime.Now;
MappingContainer mappingContainer;
@ -58,16 +58,15 @@ internal abstract class MapLogic
continue;
foreach (Mapping mapping in item.Mapping)
{
if (mapping.PersonBirthday is null)
continue;
if (mapping.NormalizedPixelPercentage.HasValue && mapping.NormalizedPixelPercentage.Value != face.Location.NormalizedPixelPercentage.Value)
continue;
// if (named.NormalizedPixelPercentage is null && (Shared.Models.Stateless.INamed.OnlyUseNamedWithNormalizedPixelPercentagePopulatedForGetKeyValuePairs || item.Named.Count != 1 || item.Faces.Count != 1))
// continue;
minimumDateTime = Shared.Models.Stateless.Methods.IProperty.GetMinimumDateTime(item.Property);
(isWrongYear, _) = item.Property.IsWrongYear(item.ImageFileHolder.FullName, minimumDateTime);
personKey = Shared.Models.Stateless.Methods.IPersonBirthday.GetFormatted(mapping.PersonBirthday);
dateKey = GetDateKey(dateTime, mapping, minimumDateTime, isWrongYear);
key = string.Concat(mapping.PersonKey, dateKey);
key = string.Concat(personKey, dateKey);
if (!results.ContainsKey(key))
results.Add(key, new());
mappingContainer = new(face, item.Property.Id.Value, isWrongYear, key, mapping, minimumDateTime);
@ -91,44 +90,4 @@ internal abstract class MapLogic
return result;
}
internal static void SetSingleImage(string[] ignoreRelativePaths, string argZero, Container[] containers)
{
Mapping mapping;
string personKey;
int? approximateYears = null;
PersonBirthday? personBirthday = null;
const string displayDirectoryName = Property.Models.Stateless.IResult.AllInOne;
foreach (Container container in containers)
{
if (!container.Items.Any())
continue;
if (!container.SourceDirectory.StartsWith(argZero))
continue;
if (ignoreRelativePaths.Contains(Path.GetFileName(container.SourceDirectory)))
continue;
foreach (Item item in container.Items)
{
if (item.ImageFileHolder is null || item.Property?.Id is null)
continue;
foreach (Face face in item.Faces)
{
if (face.FaceEncoding is null || face.Location?.NormalizedPixelPercentage is null)
continue;
personKey = DateTime.MinValue.AddYears(IPersonBirthday.FirstYear).ToString(IPersonBirthday.Format);
personBirthday = Shared.Models.Stateless.Methods.IPersonBirthday.GetPersonBirthday(personKey);
if (personBirthday is null)
continue;
mapping = new(approximateYears, displayDirectoryName, face.Location.NormalizedPixelPercentage, personBirthday, personKey);
item.Mapping.Add(mapping);
if (personBirthday is not null)
break;
}
if (personBirthday is not null)
break;
}
if (personBirthday is not null)
break;
}
}
}