using MetadataExtractor; using System.Collections.ObjectModel; using Phares.Shared.Models; using Phares.Shared.Models.Properties; using Phares.Shared.Models.Stateless; namespace Phares.Metadata.Models.Stateless; public interface IMetadata { enum DistanceUnit { Miles, NauticalMiles, Kilometers, Meters } public static FaceFile? GetFaceFile(ExifDirectory? exifDirectory) => Face.GetFaceFile(exifDirectory); public static GeoLocation? GeoLocation(ExifDirectory? exifDirectory) => GPS.GeoLocation(exifDirectory?.GpsDirectories); public static string? GetRawFaceEncoding(ExifDirectory? exifDirectory) => Face.GetFaceEncoding(exifDirectory?.PngDirectories); public static FaceEncoding? GetFaceEncoding(ExifDirectory? exifDirectory) => Face.GetFaceEncoding(exifDirectory); public static ReadOnlyDictionary> GetKeyValuePairs(IEnumerable files) => Get.GetKeyValuePairs(files); public static ReadOnlyDictionary> GetKeyValuePairs(IEnumerable collection) => Get.GetKeyValuePairs(collection); public static ExifDirectory? GetExifDirectory(ResultSettings resultSettings, MetadataSettings metadataSettings, FileInfo fileInfo) => Exif.GetExifDirectory(resultSettings, metadataSettings, fileInfo); public static ExifDirectory GetExifDirectory(FilePath filePath, Stream stream, PersonKeyFormattedAndKeyTicksAndDisplayDirectoryName? personKeyFormattedAndKeyTicksAndDisplayDirectoryName) => Exif.GetExifDirectory(filePath, stream, personKeyFormattedAndKeyTicksAndDisplayDirectoryName); public static double? GetDistance(double originLatitude, double originLongitude, double destinationLatitude, double destinationLongitude, int decimalPlaces = 1, DistanceUnit distanceUnit = DistanceUnit.Miles) => GPS.GetDistance(originLatitude, originLongitude, destinationLatitude, destinationLongitude, decimalPlaces, distanceUnit); public static Action SetExifDirectoryCollection(IRename rename, ResultSettings resultSettings, MetadataSettings metadataSettings, IRenameSettings renameSettings, A_Metadata metadata, List distinct, List metadataGroups) => Get.SetExifDirectoryCollection(rename, resultSettings, metadataSettings, renameSettings, metadata, distinct, metadataGroups); public static Action SetExifDirectoryCollection(IWindows windows, ResultSettings resultSettings, MetadataSettings metadataSettings, A_Metadata metadata, List distinct, List metadataGroups) => Get.SetExifDirectoryCollection(windows, resultSettings, metadataSettings, metadata, distinct, metadataGroups); internal GeoLocation? TestStatic_GeoLocation(ExifDirectory? exifDirectory) => GeoLocation(exifDirectory); internal string? TestStatic_GetRawFaceEncoding(ExifDirectory? exifDirectory) => GetRawFaceEncoding(exifDirectory); internal static FaceFile? TestStatic_GetFaceFile(ExifDirectory? exifDirectory) => GetFaceFile(exifDirectory); internal static FaceEncoding? TestStatic_GetFaceEncoding(ExifDirectory? exifDirectory) => GetFaceEncoding(exifDirectory); internal ReadOnlyDictionary> TestStatic_GetKeyValuePairs(IEnumerable files) => GetKeyValuePairs(files); internal ReadOnlyDictionary> TestStatic_GetKeyValuePairs(IEnumerable collection) => GetKeyValuePairs(collection); internal ExifDirectory? TestStatic_GetExifDirectory(ResultSettings resultSettings, MetadataSettings metadataSettings, FileInfo fileInfo) => GetExifDirectory(resultSettings, metadataSettings, fileInfo); internal ExifDirectory TestStatic_GetExifDirectory(FilePath filePath, Stream stream, PersonKeyFormattedAndKeyTicksAndDisplayDirectoryName? personKeyFormattedAndKeyTicksAndDisplayDirectoryName) => GetExifDirectory(filePath, stream, personKeyFormattedAndKeyTicksAndDisplayDirectoryName); internal double? TestStatic_GetDistance(double originLatitude, double originLongitude, double destinationLatitude, double destinationLongitude, int decimalPlaces = 1, DistanceUnit distanceUnit = DistanceUnit.Miles) => GetDistance(originLatitude, originLongitude, destinationLatitude, destinationLongitude, decimalPlaces, distanceUnit); internal Action TestStatic_SetExifDirectoryCollection(IWindows windows, ResultSettings resultSettings, MetadataSettings metadataSettings, A_Metadata metadata, List distinct, List metadataGroups) => SetExifDirectoryCollection(windows, resultSettings, metadataSettings, metadata, distinct, metadataGroups); internal Action TestStatic_SetExifDirectoryCollection(IRename rename, ResultSettings resultSettings, MetadataSettings metadataSettings, IRenameSettings renameSettings, A_Metadata metadata, List distinct, List metadataGroups) => SetExifDirectoryCollection(rename, resultSettings, metadataSettings, renameSettings, metadata, distinct, metadataGroups); }