diff --git a/Rename/Models/RenameSettings.cs b/Rename/Models/RenameSettings.cs index d4f2008..b1811fd 100644 --- a/Rename/Models/RenameSettings.cs +++ b/Rename/Models/RenameSettings.cs @@ -19,7 +19,9 @@ public record RenameSettings(string Company, string RelativePropertyCollectionFile, bool RequireRootDirectoryExists, string[] SidecarExtensions, - bool SkipIdFiles) : Shared.Models.Properties.IRenameSettings + bool SkipIdFiles, + int ValidationImageDeterministicHashCodeId, + string ValidationImageFile) : Shared.Models.Properties.IRenameSettings { public override string ToString() diff --git a/Rename/Rename.cs b/Rename/Rename.cs index e36c66f..bf6bcb5 100644 --- a/Rename/Rename.cs +++ b/Rename/Rename.cs @@ -127,9 +127,22 @@ public partial class Rename : IRename, IDisposable LogNetToHoursSince(logger); long ticks = DateTime.Now.Ticks; _ProgressBarOptions = new() { ProgressCharacter = '─', ProgressBarOnBottom = true, DisableBottomPercentage = true }; + Verify(logger, appSettings, rename); RenameWork(logger, appSettings, rename, ticks); } + private static void Verify(ILogger? logger, AppSettings appSettings, IRename rename) + { + FileHolder fileHolder = FileHolder.Get(appSettings.RenameSettings.ValidationImageFile); + FilePath filePath = FilePath.Get(appSettings.ResultSettings, appSettings.MetadataSettings, fileHolder, index: null); + DeterministicHashCode deterministicHashCode = rename.GetDeterministicHashCode(filePath); + if (deterministicHashCode.Id is null) + throw new NullReferenceException(nameof(deterministicHashCode)); + if (deterministicHashCode.Id.Value != appSettings.RenameSettings.ValidationImageDeterministicHashCodeId) + throw new Exception("Deterministic hash code id is incorrect!"); + logger?.LogDebug("Validated deterministic hash code id"); + } + private static void LogNetToHoursSince(ILogger? logger) { double secondsInAHour = 3600f;