A_Metadata

This commit is contained in:
2025-07-15 17:15:18 -07:00
parent 1ede3ebcdb
commit 357cd8c902
28 changed files with 51 additions and 117 deletions

View File

@ -11,7 +11,7 @@ namespace View_by_Distance.Metadata.Models;
/// <summary>
// Dictionary<string, List<KeyValuePair<string, string>>>
/// </summary>
public class B_Metadata : IMetadata<MetadataExtractor.Directory>
public class A_Metadata : IMetadata<MetadataExtractor.Directory>
{
private readonly Dictionary<int, ExifDirectory> _ExifDirectoriesById;
@ -32,7 +32,7 @@ public class B_Metadata : IMetadata<MetadataExtractor.Directory>
private readonly JsonSerializerOptions _WriteIndentedJsonSerializerOptions;
private readonly ReadOnlyDictionary<byte, ReadOnlyCollection<string>>[] _ResultSingletonFileGroups;
public B_Metadata(IDlibDotNet? dlibDotNet, IPropertyConfiguration propertyConfiguration, bool forceMetadataLastWriteTimeToCreationTime, bool propertiesChangedForMetadata, long ticks, string bResultsFullGroupDirectory)
public A_Metadata(IDlibDotNet? dlibDotNet, IPropertyConfiguration propertyConfiguration, bool forceMetadataLastWriteTimeToCreationTime, bool propertiesChangedForMetadata, long ticks, string bResultsFullGroupDirectory)
{
_PropertyConfiguration = propertyConfiguration;
_PropertiesChangedForMetadata = propertiesChangedForMetadata;
@ -62,7 +62,7 @@ public class B_Metadata : IMetadata<MetadataExtractor.Directory>
Shared.Models.Stateless.Methods.IPath.CreateDirectories(directories);
ReadOnlyCollection<ReadOnlyCollection<FilePath>> filePathsCollection = IDirectory.GetFilePathCollections(propertyConfiguration, directorySearchFilter, fileSearchFilter, filesCollectionRootDirectory, useIgnoreExtensions: true, useCeilingAverage: false);
ReadOnlyCollection<FilePair> filePairs = IFilePair.GetFilePairs(propertyConfiguration, directorySearchFilter, extension, jsonGroupSingletonDirectory, filePathsCollection);
string message = $") {nameof(B_Metadata)} - Preloading ExifDirectory Dictionary - {(int)Math.Floor(new TimeSpan(DateTime.Now.Ticks - ticks).TotalSeconds)} total second(s)";
string message = $") {nameof(A_Metadata)} - Preloading ExifDirectory Dictionary - {(int)Math.Floor(new TimeSpan(DateTime.Now.Ticks - ticks).TotalSeconds)} total second(s)";
dlibDotNet?.ConstructProgressBar(filePairs.Count, message);
_ = Parallel.For(0, filePairs.Count, parallelOptions, (i, state) => ParallelFor(filePairs[i], exifDirectoriesById, tick));
_ExifDirectoriesById = exifDirectoriesById;
@ -156,12 +156,12 @@ public class B_Metadata : IMetadata<MetadataExtractor.Directory>
result = JsonSerializer.Deserialize(json, ExifDirectorySourceGenerationContext.Default.ExifDirectory);
if (result is null)
throw new Exception();
subFileTuples.Add(new Tuple<string, DateTime>(nameof(B_Metadata), fileInfo.LastWriteTime));
subFileTuples.Add(new Tuple<string, DateTime>(nameof(A_Metadata), fileInfo.LastWriteTime));
}
catch (Exception)
{
result = null;
parseExceptions.Add(nameof(B_Metadata));
parseExceptions.Add(nameof(A_Metadata));
}
}
if (result is null)
@ -173,12 +173,12 @@ public class B_Metadata : IMetadata<MetadataExtractor.Directory>
if (Shared.Models.Stateless.Methods.IPath.WriteAllText(fileInfo.FullName, json, updateDateWhenMatches, compareBeforeWrite: true, updateToWhenMatches: dateTime))
{
if (!_ForceMetadataLastWriteTimeToCreationTime)
subFileTuples.Add(new Tuple<string, DateTime>(nameof(B_Metadata), DateTime.Now));
subFileTuples.Add(new Tuple<string, DateTime>(nameof(A_Metadata), DateTime.Now));
else
{
File.SetLastWriteTime(fileInfo.FullName, fileInfo.CreationTime);
fileInfo.Refresh();
subFileTuples.Add(new Tuple<string, DateTime>(nameof(B_Metadata), fileInfo.CreationTime));
subFileTuples.Add(new Tuple<string, DateTime>(nameof(A_Metadata), fileInfo.CreationTime));
}
}
}