namespace View_by_Distance.Shared.Models.Stateless.Methods;

public interface IContainer
{

    DateTime[] TestStatic_GetContainerDateTimes(IEnumerable<Models.Item> items) =>
        GetContainerDateTimes(items);
    static DateTime[] GetContainerDateTimes(IEnumerable<Models.Item> items) =>
        Container.GetContainerDateTimes(items);

    Models.Item[] TestStatic_GetFilterItems(Properties.IPropertyConfiguration propertyConfiguration, Models.Container container) =>
        GetFilterItems(propertyConfiguration, container);
    static Models.Item[] GetFilterItems(Properties.IPropertyConfiguration propertyConfiguration, Models.Container container) =>
       Container.GetFilterItems(propertyConfiguration, container);

    bool TestStatic_IsIgnoreRelativePath(Properties.IPropertyConfiguration propertyConfiguration, string[] ignoreRelativePaths, string directory) =>
        IsIgnoreRelativePath(propertyConfiguration, ignoreRelativePaths, directory);
    static bool IsIgnoreRelativePath(Properties.IPropertyConfiguration propertyConfiguration, string[] ignoreRelativePaths, string directory) =>
        Container.IsIgnoreRelativePath(propertyConfiguration, ignoreRelativePaths, directory);

    Models.Container[] TestStatic_SortContainers(Properties.IPropertyConfiguration propertyConfiguration, string[] ignoreRelativePaths, bool argZeroIsConfigurationRootDirectory, string argZero, Models.Container[] containers) =>
        SortContainers(propertyConfiguration, ignoreRelativePaths, argZeroIsConfigurationRootDirectory, argZero, containers);
    static Models.Container[] SortContainers(Properties.IPropertyConfiguration propertyConfiguration, string[] ignoreRelativePaths, bool argZeroIsConfigurationRootDirectory, string argZero, Models.Container[] containers) =>
        Container.SortContainers(propertyConfiguration, ignoreRelativePaths, argZeroIsConfigurationRootDirectory, argZero, containers);

    List<FilePair> TestStatic_GetFilePairs(Properties.IPropertyConfiguration propertyConfiguration, string directorySearchFilter, string extension, string aPropertySingletonDirectory, List<string[]> filesCollection) =>
        Container.GetFilePairs(propertyConfiguration, directorySearchFilter, extension, aPropertySingletonDirectory, filesCollection);
    static List<FilePair> GetFilePairs(Properties.IPropertyConfiguration propertyConfiguration, string directorySearchFilter, string extension, string aPropertySingletonDirectory, List<string[]> filesCollection) =>
        Container.GetFilePairs(propertyConfiguration, directorySearchFilter, extension, aPropertySingletonDirectory, filesCollection);

    (int, Models.Container[]) TestStatic_GetContainers(Properties.IPropertyConfiguration propertyConfiguration, string aPropertySingletonDirectory) =>
            GetContainers(propertyConfiguration, aPropertySingletonDirectory);
    static (int, Models.Container[]) GetContainers(Properties.IPropertyConfiguration propertyConfiguration, string aPropertySingletonDirectory) =>
        Container.GetContainers(propertyConfiguration, aPropertySingletonDirectory);

    List<int> TestStatic_GetFilteredDistinctIds(Properties.IPropertyConfiguration propertyConfiguration, Models.Container[] containers) =>
            GetFilteredDistinctIds(propertyConfiguration, containers);
    static List<int> GetFilteredDistinctIds(Properties.IPropertyConfiguration propertyConfiguration, Models.Container[] containers) =>
        Container.GetFilteredDistinctIds(propertyConfiguration, containers);

    List<Models.Item> TestStatic_GetItems(Properties.IPropertyConfiguration propertyConfiguration, Models.Container[] containers, bool distinctItems, bool filterItems) =>
        GetItems(propertyConfiguration, containers, distinctItems, filterItems);
    static List<Models.Item> GetItems(Properties.IPropertyConfiguration propertyConfiguration, Models.Container[] containers, bool distinctItems, bool filterItems) =>
        Container.GetItems(propertyConfiguration, containers, distinctItems, filterItems);

}