using System.Collections.ObjectModel; using View_by_Distance.Metadata.Models; using View_by_Distance.Shared.Models; using View_by_Distance.Shared.Models.Properties; using View_by_Distance.Shared.Models.Stateless; namespace View_by_Distance.Distance.Models.Stateless; public interface IDistance { static string Get(bool saveIndividually, string forceSingleImageHumanized, int by, bool isDefaultName) => $"{by switch { IMapLogic.Mapping => nameof(IMapLogic.Mapping), IMapLogic.Sorting => saveIndividually ? nameof(IMapLogic.Individually) : nameof(IMapLogic.Sorting), IMapLogic.ForceSingleImage => forceSingleImageHumanized, _ => throw new NotImplementedException() }}{(!isDefaultName ? "-A" : "-Z")}"; public static ReadOnlyDictionary GetOnlyOne(DistanceSettings distanceSettings, ReadOnlyCollection matrix) => FilterLogicC.GetOnlyOne(distanceSettings, matrix); public static ReadOnlyCollection GetMappedExifDirectoryWithEncoding(ICompare compare, long ticks, ReadOnlyCollection exifDirectories) => FaceEncodingLogic.GetMappedExifDirectoryWithEncoding(compare, ticks, exifDirectories); public static ReadOnlyCollection GetPostFilterLocationContainer(ReadOnlyCollection preFiltered, DistanceLimits distanceLimits) => FilterLogicC.GetPostFilterLocationContainer(preFiltered, distanceLimits); public static ReadOnlyDictionary> Extract(ICompareSettings compareSettings, ReadOnlyCollection exifDirectories) => MappedLogicA.Extract(compareSettings, exifDirectories); public static void SaveContainers(DistanceSettings distanceSettings, ICompareSettings compareSettings, ICompare compare, long ticks, int? updated, ReadOnlyCollection saveContainers) => FilterLogicD.SaveContainers(distanceSettings, compareSettings, compare, ticks, updated, saveContainers); public static ReadOnlyCollection GetSaveContainers(ResultSettings resultSettings, DistanceSettings distanceSettings, ICompareSettings compareSettings, ICompare compare, long ticks, string outputResolution, ReadOnlyDictionary onlyOne) => FilterLogicD.GetSaveContainers(resultSettings, distanceSettings, compareSettings, compare, ticks, outputResolution, onlyOne); public static ReadOnlyCollection GetMapped(ResultSettings resultSettings, MetadataSettings metadataSettings, PeopleSettings peopleSettings, DistanceSettings distanceSettings, ICompareSettings compareSettings, ICompare compare, long ticks, ReadOnlyCollections readOnlyCollections) => MappedLogicA.GetMapped(resultSettings, metadataSettings, peopleSettings, distanceSettings, compareSettings, compare, ticks, readOnlyCollections); public static ReadOnlyCollection GetMatrixLocationContainers(DistanceSettings distanceSettings, ICompareSettings compareSettings, ICompare compare, long ticks, ReadOnlyCollection mappedExifDirectoryWithEncoding, DistanceLimits distanceLimits, ReadOnlyCollection postFiltered) => FilterLogicC.GetMatrixLocationContainers(distanceSettings, compareSettings, compare, ticks, mappedExifDirectoryWithEncoding, distanceLimits, postFiltered); public static ReadOnlyCollection GetPreFilterLocationContainer(DistanceSettings distanceSettings, ICompareSettings compareSettings, ICompare compare, long ticks, ReadOnlyCollections readOnlyCollections, ReadOnlyDictionary> keyValuePairs, ReadOnlyCollection exifDirectories) => FilterLogicA.GetPreFilterLocationContainer(distanceSettings, compareSettings, compare, ticks, readOnlyCollections, keyValuePairs, exifDirectories); internal static ReadOnlyDictionary TestStatic_GetOnlyOne(DistanceSettings distanceSettings, ReadOnlyCollection matrix) => GetOnlyOne(distanceSettings, matrix); internal static ReadOnlyCollection TestStatic_GetMappedExifDirectoryWithEncoding(ICompare compare, long ticks, ReadOnlyCollection exifDirectories) => GetMappedExifDirectoryWithEncoding(compare, ticks, exifDirectories); internal static ReadOnlyCollection TestStatic_GetPostFilterLocationContainer(ReadOnlyCollection preFiltered, DistanceLimits distanceLimits) => GetPostFilterLocationContainer(preFiltered, distanceLimits); internal static ReadOnlyDictionary> TestStatic_Extract(ICompareSettings compareSettings, ReadOnlyCollection exifDirectories) => Extract(compareSettings, exifDirectories); internal static void TestStatic_SaveContainers(DistanceSettings distanceSettings, ICompareSettings compareSettings, ICompare compare, long ticks, int? updated, ReadOnlyCollection saveContainers) => SaveContainers(distanceSettings, compareSettings, compare, ticks, updated, saveContainers); internal static ReadOnlyCollection TestStatic_GetSaveContainers(ResultSettings resultSettings, DistanceSettings distanceSettings, ICompareSettings compareSettings, ICompare compare, long ticks, string outputResolution, ReadOnlyDictionary onlyOne) => GetSaveContainers(resultSettings, distanceSettings, compareSettings, compare, ticks, outputResolution, onlyOne); internal static ReadOnlyCollection TestStatic_GetMapped(ResultSettings resultSettings, MetadataSettings metadataSettings, PeopleSettings peopleSettings, DistanceSettings distanceSettings, ICompareSettings compareSettings, ICompare compare, long ticks, ReadOnlyCollections readOnlyCollections) => GetMapped(resultSettings, metadataSettings, peopleSettings, distanceSettings, compareSettings, compare, ticks, readOnlyCollections); internal static ReadOnlyCollection TestStatic_GetMatrixLocationContainers(DistanceSettings distanceSettings, ICompareSettings compareSettings, ICompare compare, long ticks, ReadOnlyCollection mappedExifDirectoryWithEncoding, DistanceLimits distanceLimits, ReadOnlyCollection postFiltered) => GetMatrixLocationContainers(distanceSettings, compareSettings, compare, ticks, mappedExifDirectoryWithEncoding, distanceLimits, postFiltered); internal static ReadOnlyCollection TestStatic_GetPreFilterLocationContainer(DistanceSettings distanceSettings, ICompareSettings compareSettings, ICompare compare, long ticks, ReadOnlyCollections readOnlyCollections, ReadOnlyDictionary> keyValuePairs, ReadOnlyCollection exifDirectories) => GetPreFilterLocationContainer(distanceSettings, compareSettings, compare, ticks, readOnlyCollections, keyValuePairs, exifDirectories); }