ImageValidator
using Microsoft.VisualBasic.CompilerServices;
using OutsideIn;
using System;
using System.IO;
namespace kCura.WinEDDS
{
public class ImageValidator : IImageValidator
{
public ImageValidationResult IsImageValid(string filePath, ITiffValidator tiffValidator, IFileInspector fileInspector)
{
try {
return ValidateFileOrThrow(filePath, tiffValidator, fileInspector);
} catch (Exception ex) {
ProjectData.SetProjectError(ex);
Exception ex2 = ex;
string message = ex2.Message;
ImageValidationResult result = new ImageValidationResult(false, ref message);
ProjectData.ClearProjectError();
return result;
}
}
ImageValidationResult IImageValidator.IsImageValid(string filePath, ITiffValidator tiffValidator, IFileInspector fileInspector)
{
return this.IsImageValid(filePath, tiffValidator, fileInspector);
}
private ImageValidationResult ValidateFileOrThrow(string filePath, ITiffValidator tiffValidator, IFileInspector fileInspector)
{
if (filePath == null)
throw new ArgumentNullException("filePath");
if (tiffValidator == null)
throw new ArgumentNullException("tiffValidator");
if (fileInspector == null)
throw new ArgumentNullException("fileInspector");
string message;
if (Operators.CompareString(filePath, string.Empty, false) != 0) {
if (!File.Exists(filePath)) {
message = $"""{filePath}""";
return new ImageValidationResult(false, ref message);
}
return ValidateExistingFile(filePath, tiffValidator, fileInspector);
}
message = "filePath argument is empty";
return new ImageValidationResult(false, ref message);
}
private ImageValidationResult ValidateExistingFile(string filePath, ITiffValidator tiffValidator, IFileInspector fileInspector)
{
FileFormat fileFormatByFilePath = fileInspector.GetFileFormatByFilePath(filePath);
string message;
if (fileFormatByFilePath.GetId() != 6210) {
if (!((object)fileFormatByFilePath).Equals((object)FileFormat.FI_TIFF) && !((object)fileFormatByFilePath).Equals((object)FileFormat.FI_JPEGFIF)) {
message = $"""{filePath}""";
return new ImageValidationResult(false, ref message);
}
if (!((object)fileFormatByFilePath).Equals((object)FileFormat.FI_TIFF)) {
message = $"""{filePath}""";
return new ImageValidationResult(true, ref message);
}
return tiffValidator.ValidateTiffTags(filePath);
}
message = $"""{filePath}""";
return new ImageValidationResult(false, ref message);
}
}
}