public ExifData Read(string filePath) { if (_cacheDates.TryGetValue(filePath, out var result)) { return(result); } var exifData = GetExifData(filePath); var resultDateTime = GetCreationDate(filePath, exifData); var cameraModel = exifData?.CameraModel ?? "No Model"; result = new ExifData(resultDateTime, cameraModel, exifData != null); _cacheDates[filePath] = result; return(result); }
private DateTime GetCreationDate(string filePath, ExifData data) { var resultDateTime = data?.CreationDateTime ?? DateTime.MinValue; if (resultDateTime != DateTime.MinValue) { return(resultDateTime); } if (DateParseFromFileNameService.TryGetFrom(filePath, out var fileNameDate)) { return(fileNameDate); } var creation = File.GetCreationTime(filePath); var modified = File.GetLastWriteTime(filePath); return(creation < modified ? creation : modified); }