Drag-Drop-Move

This commit is contained in:
2023-05-03 18:12:50 -07:00
parent 07ecbeb76c
commit e6acce3852
24 changed files with 853 additions and 160 deletions

View File

@ -3,10 +3,15 @@ namespace View_by_Distance.Metadata.Models.Stateless.Methods;
public interface IMetadata
{
DateTime TestStatic_GetMinimumDateTime(DateTime?[] dateTimes, int year, IReadOnlyList<MetadataExtractor.Directory> directories) =>
DateTime? TestStatic_GetMinimumDateTime(DateTime?[] dateTimes, int year, IReadOnlyList<MetadataExtractor.Directory> directories) =>
GetMinimumDateTime(dateTimes, year, directories);
static DateTime GetMinimumDateTime(DateTime?[] dateTimes, int year, IReadOnlyList<MetadataExtractor.Directory> directories) =>
Metadata.GetMinimumDateTime(dateTimes, year, directories);
static DateTime? GetMinimumDateTime(DateTime?[] dateTimes, int year, IReadOnlyList<MetadataExtractor.Directory> directories) =>
Metadata.GetMinimumDateTime(directories, dateTimes, year);
DateTime? TestStatic_GetMinimumDateTime(IReadOnlyList<MetadataExtractor.Directory> directories) =>
GetMinimumDateTime(directories);
static DateTime? GetMinimumDateTime(IReadOnlyList<MetadataExtractor.Directory> directories) =>
Metadata.GetMinimumDateTime(directories, dateTimes: null, year: null);
string? TestStatic_GetModel(IReadOnlyList<MetadataExtractor.Directory> directories) =>
GetModel(directories);

View File

@ -53,11 +53,11 @@ internal class Metadata
return result;
}
internal static DateTime GetMinimumDateTime(DateTime?[] dateTimes, int year, IReadOnlyList<MetadataExtractor.Directory> directories)
internal static DateTime? GetMinimumDateTime(IReadOnlyList<MetadataExtractor.Directory> directories, DateTime?[]? dateTimes, int? year)
{
DateTime result;
DateTime? result;
DateTime dateTime;
List<DateTime> results = (from l in dateTimes where l is not null select l.Value).ToList();
List<DateTime> results = dateTimes is null ? new() : (from l in dateTimes where l is not null select l.Value).ToList();
ExifDirectoryBase? exifDirectoryBase = directories.OfType<ExifDirectoryBase>().FirstOrDefault();
if (exifDirectoryBase is not null)
{
@ -86,11 +86,13 @@ internal class Metadata
if (quickTimeTrackHeaderDirectory.TryGetDateTime(QuickTimeTrackHeaderDirectory.TagCreated, out dateTime))
results.Add(dateTime);
}
DateTime[] filtered = (from l in results where l.Year >= year select l).ToArray();
if (!filtered.Any())
DateTime[] filtered = year is null ? results.ToArray() : (from l in results where l.Year >= year select l).ToArray();
if (filtered.Any())
result = filtered.Min();
else if (results.Any())
result = results.Min();
else
result = filtered.Min();
result = null;
return result;
}