using File_Folder_Helper.Models.Exif; using File_Folder_Helper.Models.Face; using Microsoft.Extensions.Logging; using System.Collections.ObjectModel; using System.Text.Json; namespace File_Folder_Helper.Helpers.Exif; internal static class HelperExif { private static ReadOnlyCollection GetCollection(ExifDirectoryBase[]? exifDirectoryBases) { List results = []; if (exifDirectoryBases is not null) { string? json; FaceFile[]? collection; foreach (ExifDirectoryBase exifDirectoryBase in exifDirectoryBases) { json = exifDirectoryBase.Artist; if (string.IsNullOrEmpty(json)) continue; collection = JsonSerializer.Deserialize(json, FaceFileCollectionGenerationContext.Default.FaceFileArray); if (collection is null) continue; results.AddRange(collection); } } return new(results); } internal static void DragAndDrop(ILogger logger, string argZero) { FileInfo fileInfo = new(argZero); logger.LogInformation("<{argZero}> exists", argZero); ExifDirectory exifDirectory = Exif.GetExifDirectory(fileInfo); ReadOnlyCollection collection = GetCollection(exifDirectory.ExifBaseDirectories); logger.LogInformation("<{collection}> value", collection.Count); foreach (FaceFile faceFile in collection) { if (faceFile.MappingFromPerson is null) logger.LogInformation("<{Confidence}> value", faceFile.Location?.Confidence); else logger.LogInformation("<{DisplayDirectoryName}> value", faceFile.MappingFromPerson.DisplayDirectoryName); } } }