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

@ -6,7 +6,7 @@ namespace View_by_Distance.Shared.Models;
public record ExifDirectory(AviDirectory[] AviDirectories,
ExifDirectoryBase[] ExifBaseDirectories,
FileMetadataDirectory[] FileMetadataDirectories,
FilePath FilePath,
FilePath? FilePath,
GifHeaderDirectory[] GifHeaderDirectories,
GpsDirectory[] GpsDirectories,
int? Height,

View File

@ -21,6 +21,20 @@ public record FilePath(long CreationTicks,
int? SortOrder)
{
public static FilePath? GetNullSafe(Properties.IPropertyConfiguration propertyConfiguration, FileHolder fileHolder, int? index)
{
FilePath? result;
if (fileHolder.CreationTime is null)
result = null;
else if (fileHolder.LastWriteTime is null)
result = null;
else if (fileHolder.Length is null)
result = null;
else
result = Get(propertyConfiguration, fileHolder, index);
return result;
}
public static FilePath Get(Properties.IPropertyConfiguration propertyConfiguration, FileHolder fileHolder, int? index)
{
if (fileHolder.CreationTime is null)

View File

@ -29,7 +29,7 @@ public record MappingFromItem(DateTime[] ContainerDateTimes,
internal static MappingFromItem GetMappingFromItem(DateTime[] containerDateTimes, Item item, FileHolder? resizedFileHolder)
{
MappingFromItem result;
if (item.ExifDirectory?.FilePath.Id is null)
if (item.ExifDirectory?.FilePath?.Id is null)
throw new NotSupportedException();
if (resizedFileHolder is null)
throw new NotSupportedException();

View File

@ -40,8 +40,8 @@ internal abstract class XDate
}
if (results.Count == 0)
{
string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(exifDirectory.FilePath.Name);
DateTime? dateTime = GetDateTimeFromName(fileNameWithoutExtension);
string? fileNameWithoutExtension = exifDirectory.FilePath is null ? null : Path.GetFileNameWithoutExtension(exifDirectory.FilePath.Name);
DateTime? dateTime = fileNameWithoutExtension is null ? null : GetDateTimeFromName(fileNameWithoutExtension);
if (dateTime is not null)
results.Add(dateTime.Value);
foreach (ExifDirectoryBase exifDirectoryBase in exifDirectory.ExifBaseDirectories)