This commit is contained in:
2025-06-29 18:28:04 -07:00
parent 72ab5e737e
commit fb9a4ddd9d
11 changed files with 93 additions and 43 deletions

View File

@ -48,7 +48,7 @@ internal abstract class Container
continue;
foreach (Item item in filteredItems)
{
if (item.ExifDirectory?.FilePath.Id is null || item.ResizedFileHolder is null)
if (item.ExifDirectory?.FilePath?.Id is null || item.ResizedFileHolder is null)
continue;
if (results.Contains(item.ExifDirectory.FilePath.Id.Value))
continue;
@ -151,7 +151,7 @@ internal abstract class Container
exifDirectory = Metadata.Models.Stateless.Methods.IMetadata.GetExifDirectory(filePair.FilePath);
ReadOnlyCollection<string> keywords = IMetaBase.GetKeywords(exifDirectory?.ExifBaseDirectories);
bool? shouldIgnore = propertyConfiguration.IgnoreRulesKeyWords.Any(keywords.Contains);
bool? fileSizeChanged = exifDirectory is not null ? exifDirectory.FilePath.Length != filePair.FilePath.Length : null;
bool? fileSizeChanged = exifDirectory?.FilePath is not null ? exifDirectory.FilePath.Length != filePair.FilePath.Length : null;
bool isValidImageFormatExtension = propertyConfiguration.ValidImageFormatExtensions.Contains(filePair.FilePath.ExtensionLowered);
bool? isArchive = filePair.FilePath.Id is null || splatNineIdentifiers is null ? null : splatNineIdentifiers.TryGetValue(filePair.FilePath.Id.Value, out Identifier? identifier);
if (exifDirectory is not null && filePair.FilePath.Id is not null && filePair.FilePath.HasIgnoreKeyword is not null && filePair.FilePath.HasDateTimeOriginal is not null)
@ -196,7 +196,7 @@ internal abstract class Container
RenameFile(filePair, filePair.FilePath, change.Value, filePaths);
}
string relativePath = Shared.Models.Stateless.Methods.IPath.GetRelativePath(filePair.FilePath.FullName, rootDirectoryLength, forceExtensionToLower: true);
bool? lastWriteTimeChanged = exifDirectory is not null ? propertyConfiguration.PropertiesChangedForProperty || exifDirectory.FilePath.LastWriteTicks != filePair.FilePath.LastWriteTicks : null;
bool? lastWriteTimeChanged = exifDirectory?.FilePath is not null ? propertyConfiguration.PropertiesChangedForProperty || exifDirectory.FilePath.LastWriteTicks != filePair.FilePath.LastWriteTicks : null;
if (filePair.Match is not null)
sourceDirectoryFileHolder = IFileHolder.Get(filePair.Match);
else if (!filePair.IsUnique)
@ -279,7 +279,7 @@ internal abstract class Container
continue;
foreach (Item item in filteredItems)
{
if (item.ExifDirectory?.FilePath.Id is null || item.ResizedFileHolder is null)
if (item.ExifDirectory?.FilePath?.Id is null || item.ResizedFileHolder is null)
continue;
if (results.Contains(item.FilePath.FileNameFirstSegment))
continue;
@ -308,7 +308,7 @@ internal abstract class Container
}
foreach (Item item in filteredItems)
{
if (item.ExifDirectory?.FilePath.Id is null || item.ResizedFileHolder is null)
if (item.ExifDirectory?.FilePath?.Id is null || item.ResizedFileHolder is null)
continue;
if (distinctItems)
{
@ -397,7 +397,7 @@ internal abstract class Container
{
bool result = false;
string checkFile;
FilePath filePath;
FilePath? filePath;
string subDirectory;
string directoryName;
string checkDirectory;
@ -408,8 +408,8 @@ internal abstract class Container
foreach (string directory in directories)
{
fileHolder = IFileHolder.Get(Path.GetFileName(directory));
filePath = FilePath.Get(propertyConfiguration, fileHolder, index: null);
if (filePath.Id is null)
filePath = FilePath.GetNullSafe(propertyConfiguration, fileHolder, index: null);
if (filePath?.Id is null)
continue;
if (!fileNamesToFiles.TryGetValue(filePath.Id.Value, out collection))
throw new Exception();