using System.Collections.ObjectModel; namespace View_by_Distance.Shared.Models.Stateless.Methods; internal static class MetaBase { internal static string? GetMaker(ExifDirectoryBase[]? exifBaseDirectories) { string? result = null; if (exifBaseDirectories is not null) { string value; foreach (ExifDirectoryBase exifDirectoryBase in exifBaseDirectories) { value = exifDirectoryBase?.Make is null ? string.Empty : exifDirectoryBase.Make.ToString().Trim(); if (string.IsNullOrEmpty(value)) result = null; else { result = $"{value[0].ToString().ToUpper()}{value[1..].ToLower()}"; break; } } } return result; } internal static string? GetModel(ExifDirectoryBase[]? exifBaseDirectories) { string? result = null; if (exifBaseDirectories is not null) { string value; foreach (ExifDirectoryBase exifDirectoryBase in exifBaseDirectories) { value = exifDirectoryBase?.Model is null ? string.Empty : exifDirectoryBase.Model.ToString().Trim(); if (string.IsNullOrEmpty(value)) result = null; else { result = value; break; } } } return result; } internal static int? GetOrientation(ExifDirectoryBase[]? exifBaseDirectories) { int? result = null; // public const int TagOrientation = 274; if (exifBaseDirectories is not null) { foreach (ExifDirectoryBase exifDirectoryBase in exifBaseDirectories) { result = exifDirectoryBase?.OrientationValue; if (result is not null) break; } } return result; } internal static ReadOnlyCollection GetKeywords(ExifDirectoryBase[]? exifBaseDirectories) { List results = []; if (exifBaseDirectories is not null) { string value; foreach (ExifDirectoryBase exifDirectoryBase in exifBaseDirectories) { value = exifDirectoryBase?.WinKeywords is null ? string.Empty : exifDirectoryBase.WinKeywords.ToString().Trim(); if (string.IsNullOrEmpty(value)) continue; results.Add(value); } } return results.AsReadOnly(); } }