namespace View_by_Distance.Shared.Models.Stateless; public interface IId { const int DeterministicHashCode = 9876543; public static int GetDeterministicHashCode(byte[] value) => Id.GetDeterministicHashCode(value); public static byte GetHasIgnoreKeyword(FilePath filePath) => Id.GetHasIgnoreKeyword(filePath); public static bool IsOffsetDeterministicHashCode(MetadataSettings metadataSettings) => metadataSettings.Offset == DeterministicHashCode; public static byte GetHasDateTimeOriginal(ResultSettings resultSettings, FilePath filePath) => Id.GetHasDateTimeOriginal(resultSettings, filePath); public static byte GetMissingDateTimeOriginal(ResultSettings resultSettings, FilePath filePath) => Id.GetMissingDateTimeOriginal(resultSettings, filePath); public static bool NameWithoutExtensionIsIdFormat(MetadataSettings metadataSettings, FileHolder fileHolder) => Id.NameWithoutExtensionIsIdFormat(metadataSettings, fileHolder.NameWithoutExtension.Split('.')[0]); public static int GetId(ResultSettings resultSettings, MetadataSettings metadataSettings, string intelligentId) => Id.GetId(resultSettings, metadataSettings, intelligentId); public static bool NameWithoutExtensionIsIntelligentIdFormat(MetadataSettings metadataSettings, string fileNameFirstSegment) => fileNameFirstSegment.Length - 1 == metadataSettings.IntMinValueLength && fileNameFirstSegment[^1] is '0' or '1' or '2' or '3' or '4' or '5' or '6' or '7' or '8' or '9' && fileNameFirstSegment.All(char.IsNumber); public static bool NameWithoutExtensionIsPaddedIntelligentIdFormat(MetadataSettings metadataSettings, int sortOrderOnlyLengthIndex, string fileNameFirstSegment) => fileNameFirstSegment.Length == metadataSettings.IntMinValueLength + sortOrderOnlyLengthIndex + 1 && fileNameFirstSegment[^1] is '0' or '1' or '2' or '3' or '4' or '5' or '6' or '7' or '8' or '9' && fileNameFirstSegment.All(char.IsNumber); public static string GetIntelligentId(ResultSettings resultSettings, MetadataSettings metadataSettings, long id, string extensionLowered, bool? hasIgnoreKeyword, bool? hasDateTimeOriginal) => Id.GetIntelligentId(resultSettings, metadataSettings, id, extensionLowered, hasIgnoreKeyword, hasDateTimeOriginal); public static string GetPaddedId(ResultSettings resultSettings, MetadataSettings metadataSettings, int id, string extensionLowered, bool? hasIgnoreKeyword, bool? hasDateTimeOriginal, int? index) => Id.GetPaddedId(resultSettings, metadataSettings, id, extensionLowered, hasIgnoreKeyword, hasDateTimeOriginal, index); internal int TestStatic_GetDeterministicHashCode(byte[] value) => GetDeterministicHashCode(value); internal byte TestStatic_GetHasIgnoreKeyword(FilePath filePath) => GetHasIgnoreKeyword(filePath); internal byte TestStatic_GetHasDateTimeOriginal(ResultSettings resultSettings, FilePath filePath) => GetHasDateTimeOriginal(resultSettings, filePath); internal byte TestStatic_GetMissingDateTimeOriginal(ResultSettings resultSettings, FilePath filePath) => GetMissingDateTimeOriginal(resultSettings, filePath); internal bool TestStatic_NameWithoutExtensionIsIdFormat(MetadataSettings metadataSettings, FileHolder fileHolder) => NameWithoutExtensionIsIdFormat(metadataSettings, fileHolder); internal int TestStatic_GetId(ResultSettings resultSettings, MetadataSettings metadataSettings, string intelligentId) => GetId(resultSettings, metadataSettings, intelligentId); internal bool TestStatic_NameWithoutExtensionIsIntelligentIdFormat(MetadataSettings metadataSettings, string fileNameFirstSegment) => NameWithoutExtensionIsIntelligentIdFormat(metadataSettings, fileNameFirstSegment); internal bool TestStatic_NameWithoutExtensionIsPaddedIntelligentIdFormat(MetadataSettings metadataSettings, int sortOrderOnlyLengthIndex, string fileNameFirstSegment) => NameWithoutExtensionIsPaddedIntelligentIdFormat(metadataSettings, sortOrderOnlyLengthIndex, fileNameFirstSegment); internal string TestStatic_GetIntelligentId(ResultSettings resultSettings, MetadataSettings metadataSettings, string extensionLowered, long id, bool? hasIgnoreKeyword, bool? hasDateTimeOriginal) => GetIntelligentId(resultSettings, metadataSettings, id, extensionLowered, hasIgnoreKeyword, hasDateTimeOriginal); internal string TestStatic_GetPaddedId(ResultSettings resultSettings, MetadataSettings metadataSettings, int id, string extensionLowered, bool? hasIgnoreKeyword, bool? hasDateTimeOriginal, int? index) => GetPaddedId(resultSettings, metadataSettings, id, extensionLowered, hasIgnoreKeyword, hasDateTimeOriginal, index); }