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:
		| @ -31,6 +31,8 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable | ||||
|                          ReadOnlyCollection<ReadOnlyCollection<FilePath>> FilePathsCollection, | ||||
|                          ReadOnlyDictionary<int, Identifier>? SplatNineIdentifiers); | ||||
|  | ||||
|     public int? CurrentTick => | ||||
|         _ProgressBar?.CurrentTick; | ||||
|     public long Ticks { get; init; } | ||||
|  | ||||
|     private readonly D_Face _Faces; | ||||
| @ -87,7 +89,7 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable | ||||
|         if (configuration.IgnoreExtensions is null) | ||||
|             throw new NullReferenceException(nameof(configuration.IgnoreExtensions)); | ||||
|         _BlurHasher = new BlurHash.Models.C2_BlurHasher(configuration.PropertyConfiguration); | ||||
|         string propertyRoot = Property.Models.Stateless.IResult.GetResultsGroupDirectory(propertyConfiguration, nameof(A_Property), create: false); | ||||
|         string propertyRoot = Property.Models.Stateless.IResult.GetResultsGroupDirectory(propertyConfiguration, nameof(A_Metadata), create: false); | ||||
|         _PropertyRootExistedBefore = !Directory.Exists(propertyRoot); | ||||
|         string argZero = args.Count > 0 ? Path.GetFullPath(args[0]) : Path.GetFullPath(propertyConfiguration.RootDirectory); | ||||
|         _ArgZeroIsConfigurationRootDirectory = propertyConfiguration.RootDirectory == argZero; | ||||
| @ -175,7 +177,7 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable | ||||
|             _Logger?.LogInformation("First run completed. Run again if wanted"); | ||||
|     } | ||||
|  | ||||
|     private int FullParallelForWork(B_Metadata metadata, | ||||
|     private int FullParallelForWork(A_Metadata metadata, | ||||
|                                     MapLogic mapLogic, | ||||
|                                     string outputResolution, | ||||
|                                     bool outputResolutionHasNumber, | ||||
| @ -195,22 +197,22 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable | ||||
|         long ticks = DateTime.Now.Ticks; | ||||
|         DateTime dateTime = DateTime.Now; | ||||
|         List<string> parseExceptions = []; | ||||
|         string[] changesFrom = [nameof(A_Property)]; | ||||
|         string[] changesFrom = [nameof(A_Metadata)]; | ||||
|         List<Tuple<string, DateTime>> subFileTuples = []; | ||||
|         FileHolder resizedFileHolder = _Resize.GetResizedFileHolder(cResultsFullGroupDirectory, item, outputResolutionHasNumber); | ||||
|         if (item.ExifDirectory is null || item.ExifDirectory.FilePath?.Id is null) | ||||
|             throw new Exception(); | ||||
|         if (!item.SourceDirectoryFileHolder.Exists || item.SourceDirectoryFileHolder.CreationTime is null || item.SourceDirectoryFileHolder.LastWriteTime is null || item.Any()) | ||||
|             throw new Exception(); | ||||
|         if (_Configuration.PropertyConfiguration.ForcePropertyLastWriteTimeToCreationTime && item.SourceDirectoryFileHolder.LastWriteTime.Value != item.SourceDirectoryFileHolder.CreationTime.Value) | ||||
|         if (item.SourceDirectoryFileHolder.LastWriteTime.Value != item.SourceDirectoryFileHolder.CreationTime.Value) | ||||
|         { | ||||
|             File.SetLastWriteTime(item.SourceDirectoryFileHolder.FullName, item.SourceDirectoryFileHolder.CreationTime.Value); | ||||
|             subFileTuples.Add(new Tuple<string, DateTime>(nameof(A_Property), item.SourceDirectoryFileHolder.CreationTime.Value)); | ||||
|             subFileTuples.Add(new Tuple<string, DateTime>(nameof(A_Metadata), item.SourceDirectoryFileHolder.CreationTime.Value)); | ||||
|         } | ||||
|         else if (item.SourceDirectoryFileHolder.LastWriteTime is not null) | ||||
|             subFileTuples.Add(new Tuple<string, DateTime>(nameof(A_Property), item.SourceDirectoryFileHolder.LastWriteTime.Value)); | ||||
|             subFileTuples.Add(new Tuple<string, DateTime>(nameof(A_Metadata), item.SourceDirectoryFileHolder.LastWriteTime.Value)); | ||||
|         else | ||||
|             subFileTuples.Add(new Tuple<string, DateTime>(nameof(A_Property), new FileInfo(item.SourceDirectoryFileHolder.FullName).LastWriteTime)); | ||||
|             subFileTuples.Add(new Tuple<string, DateTime>(nameof(A_Metadata), new FileInfo(item.SourceDirectoryFileHolder.FullName).LastWriteTime)); | ||||
|         if (resizedFileHolder.Exists && item.ExifDirectory.Width is not null && item.ExifDirectory.Width.Value > 4 && _Configuration.SaveBlurHashForOutputResolutions.Contains(outputResolution)) | ||||
|         { | ||||
|             string? file = _BlurHasher.GetFile(item.FilePath); | ||||
| @ -323,7 +325,7 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable | ||||
|     } | ||||
|  | ||||
|     private (int, bool) FullParallelWork(int maxDegreeOfParallelism, | ||||
|                                          B_Metadata metadata, | ||||
|                                          A_Metadata metadata, | ||||
|                                          MapLogic mapLogic, | ||||
|                                          string outputResolution, | ||||
|                                          bool outputResolutionHasNumber, | ||||
| @ -343,7 +345,7 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable | ||||
|         DateTime[] containerDateTimes = Container.Models.Stateless.Methods.IContainer.GetContainerDateTimes(filteredItems); | ||||
|         string focusRelativePath = Path.GetFullPath(string.Concat(_Configuration.PropertyConfiguration.RootDirectory, _Configuration.FocusDirectory)); | ||||
|         bool? isFocusRelativePath = string.IsNullOrEmpty(_Configuration.FocusDirectory) ? null : container.SourceDirectory.StartsWith(focusRelativePath); | ||||
|         bool anyPropertiesChangedForX = _Configuration.PropertyConfiguration.PropertiesChangedForProperty || _Configuration.PropertiesChangedForDistance || _Configuration.PropertiesChangedForFaces || _Configuration.PropertiesChangedForIndex || _Configuration.PropertiesChangedForMetadata || _Configuration.PropertiesChangedForResize; | ||||
|         bool anyPropertiesChangedForX = _Configuration.PropertiesChangedForDistance || _Configuration.PropertiesChangedForFaces || _Configuration.PropertiesChangedForIndex || _Configuration.PropertiesChangedForMetadata || _Configuration.PropertiesChangedForResize; | ||||
|         dlibDotNet.ConstructProgressBar(filteredItems.Count, message); | ||||
|         _ = Parallel.For(0, filteredItems.Count, parallelOptions, (i, state) => | ||||
|            { | ||||
| @ -382,7 +384,7 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable | ||||
|                             string propertyRoot, | ||||
|                             string fPhotoPrismSingletonDirectory, | ||||
|                             int count, | ||||
|                             B_Metadata metadata, | ||||
|                             A_Metadata metadata, | ||||
|                             Record record, | ||||
|                             ReadOnlyCollection<Container.Models.Container> readOnlyContainers, | ||||
|                             MapLogic mapLogic) | ||||
| @ -478,23 +480,16 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable | ||||
|         GC.SuppressFinalize(this); | ||||
|     } | ||||
|  | ||||
|     (string, string) IDlibDotNet.GetResultsFullGroupDirectories() | ||||
|     string IDlibDotNet.GetResultsFullGroupDirectories() | ||||
|     { | ||||
|         string aResultsFullGroupDirectory = Property.Models.Stateless.IResult.GetResultsFullGroupDirectory( | ||||
|         string result = Property.Models.Stateless.IResult.GetResultsFullGroupDirectory( | ||||
|             _Configuration.PropertyConfiguration, | ||||
|             nameof(A_Property), | ||||
|             nameof(A_Metadata), | ||||
|             string.Empty, | ||||
|             includeResizeGroup: false, | ||||
|             includeModel: false, | ||||
|             includePredictorModel: false); | ||||
|         string bResultsFullGroupDirectory = Property.Models.Stateless.IResult.GetResultsFullGroupDirectory( | ||||
|             _Configuration.PropertyConfiguration, | ||||
|             nameof(B_Metadata), | ||||
|             string.Empty, | ||||
|             includeResizeGroup: false, | ||||
|             includeModel: false, | ||||
|             includePredictorModel: false); | ||||
|         return new(aResultsFullGroupDirectory, bResultsFullGroupDirectory); | ||||
|         return new(result); | ||||
|     } | ||||
|  | ||||
|     void IDlibDotNet.ConstructProgressBar(int maxTicks, string message) | ||||
| @ -570,7 +565,7 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable | ||||
|         if (filePath.Id is null) | ||||
|             throw new Exception(); | ||||
|         string[] directoryNames = keyValuePair.Value.Select(l => l.DirectoryFullPath.Replace('\\', '/')).ToArray(); | ||||
|         string paddedId = IId.GetPaddedId(propertyConfiguration, filePath.Id.Value, filePath.ExtensionLowered, filePath.HasIgnoreKeyword, filePath.HasDateTimeOriginal, index: null); | ||||
|         string paddedId = IId.GetPaddedId(propertyConfiguration, filePath, index: null); | ||||
|         result = new(directoryNames, filePath.ExtensionLowered, filePath.HasDateTimeOriginal, filePath.Id.Value, filePath.Length, paddedId, filePath.LastWriteTicks); | ||||
|         return result; | ||||
|     } | ||||
| @ -887,7 +882,7 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable | ||||
|         return results.AsReadOnly(); | ||||
|     } | ||||
|  | ||||
|     private static ReadOnlyDictionary<int, Identifier> GetSplatNineIdentifiers(Property.Models.Configuration propertyConfiguration, string bResultsFullGroupDirectory, ReadOnlyDictionary<int, ReadOnlyCollection<FilePath>> idToFilePaths) | ||||
|     private static ReadOnlyDictionary<int, Identifier> GetSplatNineIdentifiers(ILogger<Program>? logger, Property.Models.Configuration propertyConfiguration, string aResultsFullGroupDirectory, ReadOnlyDictionary<int, ReadOnlyCollection<FilePath>> idToFilePaths) | ||||
|     { | ||||
|         Dictionary<int, Identifier> results = []; | ||||
|         string json; | ||||
| @ -895,7 +890,7 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable | ||||
|         Identifier identifier; | ||||
|         List<Identifier> identifiers = []; | ||||
|         string rootDirectory = propertyConfiguration.RootDirectory.Replace('\\', '/'); | ||||
|         string bMetadataCollectionDirectory = Path.Combine(bResultsFullGroupDirectory, propertyConfiguration.ResultCollection); | ||||
|         string bMetadataCollectionDirectory = Path.Combine(aResultsFullGroupDirectory, propertyConfiguration.ResultCollection); | ||||
|         if (!Directory.Exists(bMetadataCollectionDirectory)) | ||||
|             _ = Directory.CreateDirectory(bMetadataCollectionDirectory); | ||||
|         foreach (KeyValuePair<int, ReadOnlyCollection<FilePath>> keyValuePair in idToFilePaths) | ||||
| @ -924,13 +919,19 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable | ||||
|             results.Add(keyValuePair.Key, identifier); | ||||
|         } | ||||
|         json = JsonSerializer.Serialize(results.Values.ToArray(), IdentifierCollectionSourceGenerationContext.Default.IdentifierArray); | ||||
|         _ = Shared.Models.Stateless.Methods.IPath.WriteAllText(Path.Combine(bMetadataCollectionDirectory, "!9.json"), json, updateDateWhenMatches: false, compareBeforeWrite: true, updateToWhenMatches: null); | ||||
|         if (Shared.Models.Stateless.Methods.IPath.WriteAllText(Path.Combine(bMetadataCollectionDirectory, "!9.json"), json, updateDateWhenMatches: false, compareBeforeWrite: true, updateToWhenMatches: null)) | ||||
|             logger?.LogWarning("!9.json has been updated!"); | ||||
|         else | ||||
|             logger?.LogInformation("!9.json matches"); | ||||
|         json = JsonSerializer.Serialize((from l in identifiers orderby l.PaddedId select l).ToArray(), IdentifierCollectionSourceGenerationContext.Default.IdentifierArray); | ||||
|         _ = Shared.Models.Stateless.Methods.IPath.WriteAllText(Path.Combine(bMetadataCollectionDirectory, ".json"), json.Replace(rootDirectory, string.Empty), updateDateWhenMatches: false, compareBeforeWrite: true, updateToWhenMatches: null); | ||||
|         if (Shared.Models.Stateless.Methods.IPath.WriteAllText(Path.Combine(bMetadataCollectionDirectory, ".json"), json.Replace(rootDirectory, string.Empty), updateDateWhenMatches: false, compareBeforeWrite: true, updateToWhenMatches: null)) | ||||
|             logger?.LogWarning(".json has been updated!"); | ||||
|         else | ||||
|             logger?.LogInformation(".json matches"); | ||||
|         return results.AsReadOnly(); | ||||
|     } | ||||
|  | ||||
|     private static ReadOnlyDictionary<int, Identifier> GetSplatNineIdentifiersAndHideSplatNine(Property.Models.Configuration propertyConfiguration, string bResultsFullGroupDirectory, ReadOnlyCollection<ReadOnlyCollection<FilePath>> filePathsCollection) | ||||
|     private static ReadOnlyDictionary<int, Identifier> GetSplatNineIdentifiersAndHideSplatNine(ILogger<Program>? logger, Property.Models.Configuration propertyConfiguration, string aResultsFullGroupDirectory, ReadOnlyCollection<ReadOnlyCollection<FilePath>> filePathsCollection) | ||||
|     { | ||||
|         ReadOnlyDictionary<int, Identifier> results; | ||||
|         if (filePathsCollection.Count == 0) | ||||
| @ -941,7 +942,7 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable | ||||
|             ReadOnlyCollection<FilePath> moved = HideSplatNineAndGetMovedDuplicatesWithSameSplatNine(propertyConfiguration, idToFilePaths); | ||||
|             if (moved.Count > 0) | ||||
|                 throw new Exception($"House cleaning needed!{Environment.NewLine}{string.Join(Environment.NewLine, moved.Select(l => l.Id))}"); | ||||
|             results = GetSplatNineIdentifiers(propertyConfiguration, bResultsFullGroupDirectory, idToFilePaths); | ||||
|             results = GetSplatNineIdentifiers(logger, propertyConfiguration, aResultsFullGroupDirectory, idToFilePaths); | ||||
|         } | ||||
|         return results; | ||||
|     } | ||||
| @ -1112,13 +1113,11 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable | ||||
|         MapLogic? mapLogic; | ||||
|         Record? record = null; | ||||
|         string seasonDirectory; | ||||
|         A_Property propertyLogic; | ||||
|         IDlibDotNet dlibDotNet = this; | ||||
|         DateTime dateTime = new(Ticks); | ||||
|         string eDistanceContentDirectory; | ||||
|         string? a2PeopleContentDirectory; | ||||
|         string aResultsFullGroupDirectory; | ||||
|         string bResultsFullGroupDirectory; | ||||
|         string cResultsFullGroupDirectory; | ||||
|         string fPhotoPrismContentDirectory; | ||||
|         const string fileSearchFilter = "*"; | ||||
| @ -1132,15 +1131,15 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable | ||||
|             Path.Combine(_Configuration.PropertyConfiguration.RootDirectory, "Facebook"), | ||||
|             Path.Combine(_Configuration.PropertyConfiguration.RootDirectory, "LinkedIn") | ||||
|         ]; | ||||
|         aResultsFullGroupDirectory = dlibDotNet.GetResultsFullGroupDirectories(); | ||||
|         bool runToDoCollectionFirst = GetRunToDoCollectionFirst(_Configuration, checkDirectories); | ||||
|         (aResultsFullGroupDirectory, bResultsFullGroupDirectory) = dlibDotNet.GetResultsFullGroupDirectories(); | ||||
|         (int season, string seasonName) = Shared.Models.Stateless.Methods.IProperty.GetSeason(dateTime.DayOfYear); | ||||
|         Shared.Models.Stateless.Methods.IPath.ChangeDateForEmptyDirectories(_Configuration.PropertyConfiguration.RootDirectory, dlibDotNet.Ticks); | ||||
|         a2PeopleContentDirectory = Property.Models.Stateless.IResult.GetResultsDateGroupDirectory(_Configuration.PropertyConfiguration, nameof(A2_People), "([])"); | ||||
|         eDistanceContentDirectory = Property.Models.Stateless.IResult.GetResultsDateGroupDirectory(_Configuration.PropertyConfiguration, nameof(E_Distance), _Configuration.PropertyConfiguration.ResultContent); | ||||
|         string a2PeopleSingletonDirectory = Property.Models.Stateless.IResult.GetResultsDateGroupDirectory(_Configuration.PropertyConfiguration, nameof(A2_People), _Configuration.PropertyConfiguration.ResultSingleton); | ||||
|         _ = Directory.CreateDirectory(Path.Combine(eDistanceContentDirectory, dlibDotNet.Ticks.ToString())); | ||||
|         B_Metadata metadata = new(dlibDotNet, _Configuration.PropertyConfiguration, _Configuration.ForceMetadataLastWriteTimeToCreationTime, _Configuration.PropertiesChangedForMetadata, dlibDotNet.Ticks, bResultsFullGroupDirectory); | ||||
|         A_Metadata metadata = new(dlibDotNet, _Configuration.PropertyConfiguration, _Configuration.ForceMetadataLastWriteTimeToCreationTime, _Configuration.PropertiesChangedForMetadata, dlibDotNet.Ticks, aResultsFullGroupDirectory); | ||||
|         if (runToDoCollectionFirst) | ||||
|             mapLogic = null; | ||||
|         else | ||||
| @ -1152,12 +1151,11 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable | ||||
|             configurationOutputResolutionsHas = true; | ||||
|             if (!runToDoCollectionFirst) | ||||
|                 break; | ||||
|             record = GetFilesCollectionThenCopyOrMove(dlibDotNet, metadata, fileSearchFilter, directorySearchFilter, bResultsFullGroupDirectory, outputResolution); | ||||
|             record = GetFilesCollectionThenCopyOrMove(dlibDotNet, metadata, fileSearchFilter, directorySearchFilter, aResultsFullGroupDirectory, outputResolution); | ||||
|             break; | ||||
|         } | ||||
|         fPhotoPrismContentDirectory = Property.Models.Stateless.IResult.GetResultsDateGroupDirectory(_Configuration.PropertyConfiguration, nameof(F_PhotoPrism), _Configuration.PropertyConfiguration.ResultContent); | ||||
|         fPhotoPrismSingletonDirectory = Property.Models.Stateless.IResult.GetResultsDateGroupDirectory(_Configuration.PropertyConfiguration, nameof(F_PhotoPrism), _Configuration.PropertyConfiguration.ResultSingleton); | ||||
|         propertyLogic = new(_AppSettings.MaxDegreeOfParallelism, _Configuration.PropertyConfiguration, _Resize.FileNameExtension, _Configuration.Reverse, aResultsFullGroupDirectory); | ||||
|         if (record is not null && record.FilesCollectionCountIsOne) | ||||
|         { | ||||
|             if (record.FilePathsCollection is null) | ||||
| @ -1174,9 +1172,8 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable | ||||
|             } | ||||
|             argZero = SaveUrlAndGetNewRootDirectory(record.FilePathsCollection.First()); | ||||
|             _Configuration.PropertyConfiguration.ChangeRootDirectory(argZero); | ||||
|             (aResultsFullGroupDirectory, bResultsFullGroupDirectory) = dlibDotNet.GetResultsFullGroupDirectories(); | ||||
|             aResultsFullGroupDirectory = dlibDotNet.GetResultsFullGroupDirectories(); | ||||
|             propertyRoot = Property.Models.Stateless.IResult.GetResultsGroupDirectory(_Configuration.PropertyConfiguration, nameof(A_Property), create: false); | ||||
|             propertyLogic = new(_AppSettings.MaxDegreeOfParallelism, _Configuration.PropertyConfiguration, _Resize.FileNameExtension, _Configuration.Reverse, aResultsFullGroupDirectory); | ||||
|         } | ||||
|         if (configurationOutputResolutionsHas) | ||||
|         { | ||||
| @ -1230,7 +1227,7 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable | ||||
|             { | ||||
|                 dlibDotNet.ConstructProgressBar(5, nameof(mapLogic.LookForAbandoned)); | ||||
|                 (cResultsFullGroupDirectory, _, dResultsFullGroupDirectory, d2ResultsFullGroupDirectory) = dlibDotNet.GetResultsFullGroupDirectories(outputResolution); | ||||
|                 mapLogic.LookForAbandoned(_Configuration.PropertyConfiguration, bResultsFullGroupDirectory, readOnlyContainers, cResultsFullGroupDirectory, dResultsFullGroupDirectory, d2ResultsFullGroupDirectory, dlibDotNet.Tick); | ||||
|                 mapLogic.LookForAbandoned(_Configuration.PropertyConfiguration, aResultsFullGroupDirectory, readOnlyContainers, cResultsFullGroupDirectory, dResultsFullGroupDirectory, d2ResultsFullGroupDirectory, dlibDotNet.Tick); | ||||
|             } | ||||
|         } | ||||
|         _Distance.Clear(); | ||||
| @ -1271,7 +1268,6 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable | ||||
|                 string d2ResultsFullGroupDirectory; | ||||
|                 (cResultsFullGroupDirectory, c2ResultsFullGroupDirectory, dResultsFullGroupDirectory, d2ResultsFullGroupDirectory) = dlibDotNet.GetResultsFullGroupDirectories(outputResolution); | ||||
|                 _ = Shared.Models.Stateless.Methods.IPath.DeleteEmptyDirectories(Path.Combine(aResultsFullGroupDirectory, _Configuration.PropertyConfiguration.ResultSingleton)); | ||||
|                 _ = Shared.Models.Stateless.Methods.IPath.DeleteEmptyDirectories(Path.Combine(bResultsFullGroupDirectory, _Configuration.PropertyConfiguration.ResultSingleton)); | ||||
|                 _ = Shared.Models.Stateless.Methods.IPath.DeleteEmptyDirectories(Path.Combine(cResultsFullGroupDirectory, _Configuration.PropertyConfiguration.ResultSingleton)); | ||||
|                 if (_Configuration.LoadOrCreateThenSaveImageFacesResultsForOutputResolutions.Contains(outputResolution)) | ||||
|                     _ = Shared.Models.Stateless.Methods.IPath.DeleteEmptyDirectories(Path.Combine(dResultsFullGroupDirectory, _Configuration.PropertyConfiguration.ResultCollection)); | ||||
| @ -1314,10 +1310,10 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable | ||||
|             } | ||||
|         } | ||||
|         if (items.Count > 0) | ||||
|             throw new Exception($"{items.Count} item(s) of {count} item(s) are not setup!"); | ||||
|             throw new Exception($"{items.Count} item(s) of {count} item(s) are not setup!{Environment.NewLine}{string.Join(Environment.NewLine, items.Select(l => l.FilePath.FileNameFirstSegment))}"); | ||||
|     } | ||||
|  | ||||
|     private Record GetFilesCollectionThenCopyOrMove(IDlibDotNet dlibDotNet, B_Metadata metadata, string fileSearchFilter, string directorySearchFilter, string bResultsFullGroupDirectory, string outputResolution) | ||||
|     private Record GetFilesCollectionThenCopyOrMove(IDlibDotNet dlibDotNet, A_Metadata metadata, string fileSearchFilter, string directorySearchFilter, string aResultsFullGroupDirectory, string outputResolution) | ||||
|     { | ||||
|         Record result; | ||||
|         int count; | ||||
| @ -1329,7 +1325,7 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable | ||||
|         string filesCollectionRootDirectory = _Configuration.PropertyConfiguration.RootDirectory; | ||||
|         ParallelOptions parallelOptions = new() { MaxDegreeOfParallelism = maxDegreeOfParallelism }; | ||||
|         (string cResultsFullGroupDirectory, _, _, _) = dlibDotNet.GetResultsFullGroupDirectories(outputResolution); | ||||
|         string jsonGroupDirectory = Path.Combine(bResultsFullGroupDirectory, _Configuration.PropertyConfiguration.ResultSingleton); | ||||
|         string jsonGroupDirectory = Path.Combine(aResultsFullGroupDirectory, _Configuration.PropertyConfiguration.ResultSingleton); | ||||
|         if (!Directory.Exists(jsonGroupDirectory)) | ||||
|             _ = Directory.CreateDirectory(jsonGroupDirectory); | ||||
|         ReadOnlyDictionary<string, ReadOnlyDictionary<byte, ReadOnlyCollection<string>>> keyValuePairs = | ||||
| @ -1359,7 +1355,7 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable | ||||
|         message = $") Copying to ## pattern directory - {(int)Math.Floor(new TimeSpan(DateTime.Now.Ticks - dlibDotNet.Ticks).TotalSeconds)} total second(s)"; | ||||
|         dlibDotNet.ConstructProgressBar(count, message); | ||||
|         _ = IDirectory.CopyOrMove(toDoCollection, move: false, moveBack: false, dlibDotNet.Tick); | ||||
|         ReadOnlyDictionary<int, Identifier> splatNineIdentifiers = GetSplatNineIdentifiersAndHideSplatNine(_Configuration.PropertyConfiguration, bResultsFullGroupDirectory, filePathsCollection); | ||||
|         ReadOnlyDictionary<int, Identifier> splatNineIdentifiers = GetSplatNineIdentifiersAndHideSplatNine(_Logger, _Configuration.PropertyConfiguration, aResultsFullGroupDirectory, filePathsCollection); | ||||
|         result = new(ExifDirectoriesById: exifDirectoriesById, | ||||
|                      FilesCollectionRootDirectory: filesCollectionRootDirectory, | ||||
|                      FilesCollectionCountIsOne: filesCollectionCountIsOne, | ||||
|  | ||||
		Reference in New Issue
	
	Block a user