logger for !9

xmp and json sidecar support

Alignment with Phares 8.0.118.14905 for Shared and Metadata

A_Metadata

Parameter constructors

Removed force-property-last-write-time-to-creation-time

House Cleaning
This commit is contained in:
2025-07-27 10:57:26 -07:00
parent 30d8a270f9
commit 08164a880d
47 changed files with 1038 additions and 677 deletions

View File

@ -64,20 +64,19 @@ internal abstract class FaceFileLogic
exifDirectory = Metadata.Models.Stateless.Methods.IMetadata.GetExifDirectory(mappedFile.FilePath);
RectangleF? rectangle = ILocation.GetPercentagesRectangle(configuration.LocationDigits, wholePercentages.Value);
personDisplayDirectoryName = mappedFile.PersonDisplayDirectoryName is null ? configuration.MappingDefaultName : mappedFile.PersonDisplayDirectoryName;
LocationContainer locationContainer = new(dateOnly,
exifDirectory,
mappedFile.DirectoryNumber,
personDisplayDirectoryName,
null,
null,
mappedFile.FilePath,
fromDistanceContent,
id.Value,
null,
null,
mappedFile.PersonKey,
rectangle,
wholePercentages.Value);
LocationContainer locationContainer = new(CreationDateOnly: dateOnly,
ExifDirectory: exifDirectory,
DirectoryNumber: mappedFile.DirectoryNumber,
DisplayDirectoryName: personDisplayDirectoryName,
Encoding: null,
FaceFile: null,
FilePath: mappedFile.FilePath,
FromDistanceContent: fromDistanceContent,
Id: id.Value,
LengthPermyriad: null,
LengthSource: null,
PersonKey: mappedFile.PersonKey,
WholePercentages: wholePercentages.Value);
lock (locationContainers)
locationContainers.Add(locationContainer);
}
@ -167,23 +166,19 @@ internal abstract class FaceFileLogic
MoveUnableToMatch(filePath);
return;
}
RectangleF? rectangle = ILocation.GetPercentagesRectangle(configuration.LocationDigits, wholePercentages.Value);
if (rectangle is null)
return;
LocationContainer locationContainer = new(dateOnly,
exifDirectory,
null,
null,
null,
faceFile,
filePath,
fromDistanceContent,
filePath.Id.Value,
null,
null,
null,
rectangle,
wholePercentages.Value);
LocationContainer locationContainer = new(CreationDateOnly: dateOnly,
ExifDirectory: exifDirectory,
DirectoryNumber: null,
DisplayDirectoryName: null,
Encoding: null,
FaceFile: faceFile,
FilePath: filePath,
FromDistanceContent: fromDistanceContent,
Id: filePath.Id.Value,
LengthPermyriad: null,
LengthSource: null,
PersonKey: null,
WholePercentages: wholePercentages.Value);
lock (locationContainers)
locationContainers.Add(locationContainer);
}

View File

@ -35,9 +35,9 @@ internal abstract class LookForAbandonedLogic
}
}
internal static void LookForAbandoned(Property.Models.Configuration propertyConfiguration, string bResultsFullGroupDirectory, List<string> distinctFilteredFileNameFirstSegments)
internal static void LookForAbandoned(Property.Models.Configuration propertyConfiguration, string aResultsFullGroupDirectory, List<string> distinctFilteredFileNameFirstSegments)
{
string[] directories = Directory.GetDirectories(bResultsFullGroupDirectory, "*", SearchOption.TopDirectoryOnly);
string[] directories = Directory.GetDirectories(aResultsFullGroupDirectory, "*", SearchOption.TopDirectoryOnly);
foreach (string directory in directories)
{
string? directoryName = Path.GetFileName(directory);

View File

@ -1152,22 +1152,20 @@ internal abstract class MapLogic
exifDirectory = null;
else
exifDirectory = Metadata.Models.Stateless.Methods.IMetadata.GetExifDirectory(mappedFile.FilePath);
RectangleF? rectangle = ILocation.GetPercentagesRectangle(configuration.LocationDigits, wholePercentages.Value);
personDisplayDirectoryName = mappedFile.PersonDisplayDirectoryName is null ? configuration.MappingDefaultName : mappedFile.PersonDisplayDirectoryName;
LocationContainer locationContainer = new(dateOnly,
exifDirectory,
mappedFile.DirectoryNumber,
personDisplayDirectoryName,
null,
null,
mappedFile.FilePath,
fromDistanceContent,
id.Value,
null,
null,
mappedFile.PersonKey,
rectangle,
wholePercentages.Value);
LocationContainer locationContainer = new(CreationDateOnly: dateOnly,
ExifDirectory: exifDirectory,
DirectoryNumber: mappedFile.DirectoryNumber,
DisplayDirectoryName: personDisplayDirectoryName,
Encoding: null,
FaceFile: null,
FilePath: mappedFile.FilePath,
FromDistanceContent: fromDistanceContent,
Id: id.Value,
LengthPermyriad: null,
LengthSource: null,
PersonKey: mappedFile.PersonKey,
WholePercentages: wholePercentages.Value);
lock (locationContainers)
locationContainers.Add(locationContainer);
}
@ -1192,12 +1190,18 @@ internal abstract class MapLogic
if (item.WholePercentages == locationContainer.WholePercentages)
continue;
itemPercentagesRectangle = ILocation.GetPercentagesRectangle(configuration.LocationDigits, item.WholePercentages);
if (itemPercentagesRectangle is null || locationContainer.Rectangle is null)
if (itemPercentagesRectangle is null)
percent = null;
else
{
itemPercentagesArea = itemPercentagesRectangle.Value.Width * itemPercentagesRectangle.Value.Height;
percent = ILocation.GetIntersectPercent(itemPercentagesRectangle.Value, itemPercentagesArea, locationContainer.Rectangle.Value);
RectangleF? rectangle = ILocation.GetPercentagesRectangle(configuration.LocationDigits, item.WholePercentages);
if (rectangle is null)
percent = null;
else
{
itemPercentagesArea = itemPercentagesRectangle.Value.Width * itemPercentagesRectangle.Value.Height;
percent = ILocation.GetIntersectPercent(itemPercentagesRectangle.Value, itemPercentagesArea, rectangle.Value);
}
}
delete.Add(item.FilePath);
delete.Add(locationContainer.FilePath);