namespace View_by_Distance.Shared.Models.Stateless.Methods; public interface IDirectory { static int GetOffset() => 1000000; int TestStatic_GetSortOrderOnlyLengthIndex() => GetSortOrderOnlyLengthIndex(); static int GetSortOrderOnlyLengthIndex() => GetOffset().ToString().Length + 3; char TestStatic_GetDirectory(string fileName) => GetDirectory(fileName); static char GetDirectory(string fileName) => fileName.Split('-').Length > 2 ? '-' : fileName.Split('.')[0][^1]; int TestStatic_GetDirectory(char directory) => GetDirectory(directory); static int GetDirectory(char directory) => directory == '-' ? 10 : int.TryParse(directory.ToString(), out int value) ? value : 11; string TestStatic_GetPaddedId(int intMinValueLength, int index, int id) => GetPaddedId(intMinValueLength, index, id); static string GetPaddedId(int intMinValueLength, int index, int id) => id > -1 ? $"{index}070{id.ToString().PadLeft(intMinValueLength, '0')}" : $"{index}030{id.ToString()[1..].PadLeft(intMinValueLength, '0')}"; bool TestStatic_NameWithoutExtensionIsPaddedIdFormat(string fileNameWithoutExtension, int sortOrderOnlyLengthIndex) => NameWithoutExtensionIsPaddedIdFormat(fileNameWithoutExtension, sortOrderOnlyLengthIndex); static bool NameWithoutExtensionIsPaddedIdFormat(string fileNameWithoutExtension, int sortOrderOnlyLengthIndex) => fileNameWithoutExtension.Length > sortOrderOnlyLengthIndex && fileNameWithoutExtension[sortOrderOnlyLengthIndex] == '0' && fileNameWithoutExtension[sortOrderOnlyLengthIndex - 3] == '0' && fileNameWithoutExtension.All(l => char.IsNumber(l)); bool TestStatic_NameWithoutExtensionIsPaddedIdFormat(Models.FileHolder fileHolder, int sortOrderOnlyLengthIndex) => NameWithoutExtensionIsPaddedIdFormat(fileHolder, sortOrderOnlyLengthIndex); static bool NameWithoutExtensionIsPaddedIdFormat(Models.FileHolder fileHolder, int sortOrderOnlyLengthIndex) => NameWithoutExtensionIsPaddedIdFormat(fileHolder.NameWithoutExtension, sortOrderOnlyLengthIndex); List TestStatic_GetFilesCollection(string directory, string directorySearchFilter, string fileSearchFilter) => GetFilesCollection(directory, directorySearchFilter, fileSearchFilter); static List GetFilesCollection(string directory, string directorySearchFilter, string fileSearchFilter) => XDirectory.GetFilesCollection(directory, directorySearchFilter, fileSearchFilter); IReadOnlyDictionary> TestStatic_GetFilesKeyValuePairs(List filesCollection) => GetFilesKeyValuePairs(filesCollection); static IReadOnlyDictionary> GetFilesKeyValuePairs(List filesCollection) => XDirectory.GetFilesKeyValuePairs(filesCollection); int TestStatic_LookForAbandoned(List jsonFilesCollection, IReadOnlyDictionary> fileNamesToFiles, string extension) => LookForAbandoned(jsonFilesCollection, fileNamesToFiles, extension); static int LookForAbandoned(List jsonFilesCollection, IReadOnlyDictionary> fileNamesToFiles, string extension) => XDirectory.LookForAbandoned(jsonFilesCollection, fileNamesToFiles, extension); int TestStatic_MaybeMove(string directory, string resultAllInOne, int resultAllInOneSubdirectoryLength, List filePairs, string jsonGroupDirectory, string extension) => MaybeMove(directory, resultAllInOne, resultAllInOneSubdirectoryLength, filePairs, jsonGroupDirectory, extension); static int MaybeMove(string directory, string resultAllInOne, int resultAllInOneSubdirectoryLength, List filePairs, string jsonGroupDirectory, string extension) => XDirectory.MaybeMove(directory, resultAllInOne, resultAllInOneSubdirectoryLength, filePairs, jsonGroupDirectory, extension); List TestStatic_GetFiles(List filesCollection, IReadOnlyDictionary> fileNamesToFiles, string extension, IReadOnlyDictionary> compareFileNamesToFiles) => GetFiles(filesCollection, fileNamesToFiles, extension, compareFileNamesToFiles); static List GetFiles(List filesCollection, IReadOnlyDictionary> fileNamesToFiles, string extension, IReadOnlyDictionary> compareFileNamesToFiles) => XDirectory.GetFiles(filesCollection, fileNamesToFiles, extension, compareFileNamesToFiles); void TestStatic_MoveFiles(List files, string find, string replace) => MoveFiles(files, find, replace); static void MoveFiles(List files, string find, string replace) => XDirectory.MoveFiles(files, find, replace); (string[], List<(Models.FileHolder, string)>) TestStatic_GetToDoCollection(Properties.IPropertyConfiguration propertyConfiguration, List filesCollection, string[] directories, Action? tick) => GetToDoCollection(propertyConfiguration, filesCollection, directories, tick); static (string[], List<(Models.FileHolder, string)>) GetToDoCollection(Properties.IPropertyConfiguration propertyConfiguration, List filesCollection, string[] directories, Action? tick) => XDirectory.GetToDoCollection(propertyConfiguration, copyDuplicates: false, ifCanUseId: true, filesCollection, directories, tick); (string[], List<(Models.FileHolder, string)>) TestStatic_GetToDoCollection(Properties.IPropertyConfiguration propertyConfiguration, bool copyDuplicates, bool ifCanUseId, List filesCollection, string[] directories, Action? tick) => GetToDoCollection(propertyConfiguration, copyDuplicates, ifCanUseId, filesCollection, directories, tick); static (string[], List<(Models.FileHolder, string)>) GetToDoCollection(Properties.IPropertyConfiguration propertyConfiguration, bool copyDuplicates, bool ifCanUseId, List filesCollection, string[] directories, Action? tick) => XDirectory.GetToDoCollection(propertyConfiguration, copyDuplicates, ifCanUseId, filesCollection, directories, tick); List TestStatic_CopyOrMove(List<(Models.FileHolder, string)> toDoCollection, bool move, bool moveBack, Action? tick) => CopyOrMove(toDoCollection, move, moveBack, tick); static List CopyOrMove(List<(Models.FileHolder, string)> toDoCollection, bool move, bool moveBack, Action? tick) => XDirectory.CopyOrMove(toDoCollection, move, moveBack, tick); (bool, int?) TestStatic_GetId(int sortOrderOnlyLengthIndex, Models.FileHolder fileHolder) => GetId(sortOrderOnlyLengthIndex, fileHolder); static (bool, int?) GetId(int sortOrderOnlyLengthIndex, Models.FileHolder fileHolder) => XDirectory.GetId(sortOrderOnlyLengthIndex, fileHolder); (bool, int?) TestStatic_GetId(Models.FileHolder fileHolder) => GetId(fileHolder); static (bool, int?) GetId(Models.FileHolder fileHolder) => XDirectory.GetId(GetSortOrderOnlyLengthIndex(), fileHolder); }