public void UpdateLibraryEntry(InMemoryDatabase.PuzzleLibraryEntry entry)
        {
            var path = GetLibraryEntryPath(entry.UID);

            using (var writer = OpenZipArchiveEntryForWriting(path))
            {
                writer.WriteLine(entry.Author);
                new PuzzleSerializer().Write(writer, entry.Puzzle);
            }
        }
 internal Writer(StreamWriter streamWriter, InMemoryDatabase.PuzzleLibraryEntry libraryEntry, ISerializer <Puzzle> puzzleSerializer)
     : base(streamWriter)
 {
     if (libraryEntry == null)
     {
         throw new ArgumentNullException(nameof(libraryEntry));
     }
     else if (puzzleSerializer == null)
     {
         throw new ArgumentNullException(nameof(puzzleSerializer));
     }
     else
     {
         this.libraryEntry     = libraryEntry;
         this.puzzleSerializer = puzzleSerializer;
     }
 }
 public PuzzleDatabaseEntry(IGameDataArchive archive, InMemoryDatabase.PuzzleLibraryEntry entry)
 {
     this.archive = archive;
     this.entry   = entry;
 }
 public void UpdateLibraryEntry(InMemoryDatabase.PuzzleLibraryEntry entry)
 {
     WithWriteableArchive(archive => archive.UpdateLibraryEntry(entry));
 }