namespace View_by_Distance.Shared.Models.Stateless.Methods;

public interface IPath
{ // ...

    string TestStatic_GetRelativePath(string path, int length);
    static string GetRelativePath(string path, int length)
        => XPath.GetRelativePath(path, length, forceExtensionToLower: false);

    bool TestStatic_DeleteEmptyDirectories(string rootDirectory);
    static bool DeleteEmptyDirectories(string rootDirectory)
        => XPath.DeleteEmptyDirectories(rootDirectory);

    List<string> TestStatic_GetDirectoryNames(string directory);
    static List<string> GetDirectoryNames(string directory)
        => XPath.GetDirectoryNames(directory);

    string TestStatic_GetRelativePath(string path, int length, bool forceExtensionToLower);
    static string GetRelativePath(string path, int length, bool forceExtensionToLower)
        => XPath.GetRelativePath(path, length, forceExtensionToLower);

    bool TestStatic_WriteAllText(string path, string contents, bool updateDateWhenMatches, bool compareBeforeWrite);
    static bool WriteAllText(string path, string contents, bool updateDateWhenMatches, bool compareBeforeWrite, DateTime? updateToWhenMatches = null)
        => XPath.WriteAllText(path, contents, updateDateWhenMatches, compareBeforeWrite, updateToWhenMatches);

    (int level, List<string> directories) TestStatic_Get(string rootDirectory, string sourceDirectory);
    static (int level, List<string> directories) Get(string rootDirectory, string sourceDirectory)
        => XPath.Get(rootDirectory, sourceDirectory);

    string TestStatic_GetDirectory(string sourceDirectory, int level, string directoryName);
    static string GetDirectory(string sourceDirectory, int level, string directoryName)
        => XPath.GetDirectory(sourceDirectory, level, directoryName);

}