private static void ExecuteIndex(string[] args) { IEnumerable <string> photoFiles = GetPhotoPaths(args).Distinct(); string databaseFile = GetDatabasePath(args); if (photoFiles.Any() == false || string.IsNullOrWhiteSpace(databaseFile)) { PrintHelp("Photo file or database path not provided"); return; } PhotoFingerPrintDatabaseWrapper database = File.Exists(databaseFile) ? PhotoFingerPrintDatabaseLoader.Load(databaseFile) : new PhotoFingerPrintDatabaseWrapper(); IEnumerable <PhotoFingerPrintWrapper> fingerPrintBag = IndexPhotosImpl(photoFiles, database); database.PhotoFingerPrints = fingerPrintBag.ToArray(); PhotoFingerPrintDatabaseSaver.Save(database, databaseFile); }
public void TestPhotoIndexerSerialization() { var photoFingerPrint = new PhotoFingerPrintWrapper { FilePath = "test.png", PHash = 0x0A, EdgeGrayScaleThumb = new byte[] { 0, 1, 1 }, }; var database = new PhotoFingerPrintDatabaseWrapper { PhotoFingerPrints = new[] { photoFingerPrint }, }; using (var memoryStream = new MemoryStream()) { PhotoFingerPrintDatabaseSaver.Save(database, memoryStream); byte[] savedDatabase = memoryStream.ToArray(); PhotoFingerPrintDatabaseWrapper reloadedDatabase = PhotoFingerPrintDatabaseLoader.Load(savedDatabase); Assert.AreEqual(database, reloadedDatabase); } }