public PhotoProcessor(PhotoPathHelper pathHelper, 
                       IPhotoOptimizer photoOptimizer, 
                       IRawConverter rawConverter, 
                       IExifReader exifReader,
                       IQualitySearcher qualitySearcher,
                       ProcessingTarget sourceTarget,
                       ProcessingTarget printTarget,  
                       ProcessingTarget xsTarget, 
                       ProcessingTarget smTarget, 
                       ProcessingTarget mdTarget, 
                       ProcessingTarget lgTarget, 
                       bool quiet)
 {
     _quiet = quiet;
     _pathHelper = pathHelper;
     _optimizer = photoOptimizer;
     _rawConverter = rawConverter;
     _exifReader = exifReader;
     _qualitySearcher = qualitySearcher;
     
     SourceTarget = sourceTarget;
     PrintTarget = printTarget;
     XsTarget = xsTarget;
     SmTarget = smTarget;
     MdTarget = mdTarget;
     LgTarget = lgTarget;
 }
 public IFileHandler GetFileHandler(string fileName, IFileSystem fileSystem = null, ICompress compressor = null, IExifReader exifReader = null)
 {
     if (fileName.EndsWith(".jpg", true, null)) {
         return new JpgFileHandler(fileName, fileSystem: fileSystem, compressor: compressor, exifReader: exifReader);
     }
     throw new NotImplementedException("File type is not yet implemented: " + fileName);
 }
 public PictureDirectoryFactory(IFileSystem fileSystem = null, IExifReader exifReader = null)
 {
     if (fileSystem != null) {
         _fileSystem = fileSystem;
     }
     if (exifReader != null) {
         _exifReader = exifReader;
     }
 }
 internal PictureDirectory(string directory = null, IFileSystem fileSystem = null, IExifReader exifReader = null)
 {
     if (directory == null) {
         throw new ArgumentNullException("directory");
     }
     if (fileSystem != null) {
         _fileSystem = fileSystem;
         _pictureDirectoryFactory = new PictureDirectoryFactory(fileSystem, exifReader);
         _fileHandlerFactory = new FileHandlerFactory(fileSystem);
     }
     if (exifReader != null) {
         _exifReader = exifReader;
     }
     Directory = directory;
 }
 public JpgFileHandler(string fileName, IFileSystem fileSystem = null, ICompress compressor = null, IExifReader exifReader = null)
     : base(fileName, fileSystem)
 {
     if (!fileName.EndsWith(".jpg", true, null)) {
         throw new ArgumentException("JpgFileHandler created with a file name not recognized as Jpg");
     }
     if (compressor != null) {
         _compressor = compressor;
     }
     if (exifReader == null) {
         ExifReader = new ExifReaderManager();
     } else {
         ExifReader = exifReader;
     }
 }