From 651f1106e40c5c16d7701a95be0135546c1e1b9d Mon Sep 17 00:00:00 2001 From: InspectorIT Date: Fri, 27 Mar 2026 22:47:28 +0300 Subject: [PATCH] add Load method --- src/KeyKeeper/Services/RecentFilesService.cs | 29 ++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/KeyKeeper/Services/RecentFilesService.cs b/src/KeyKeeper/Services/RecentFilesService.cs index ea12e0d..5b253db 100644 --- a/src/KeyKeeper/Services/RecentFilesService.cs +++ b/src/KeyKeeper/Services/RecentFilesService.cs @@ -1,7 +1,9 @@ using System; +using System.Collections.Generic; using System.Collections.ObjectModel; using System.IO; using System.Linq; +using System.Text.Json; using KeyKeeper.Models; namespace KeyKeeper.Services; @@ -24,6 +26,33 @@ internal class RecentFilesService : IRecentFilesService recentFilesPath = Path.Combine(appDataDirectory, RecentFilesFilename); } + public void Load() + { + RecentFiles.Clear(); + + if (!File.Exists(recentFilesPath)) + { + return; + } + + try + { + var content = File.ReadAllText(recentFilesPath); + var loadedFiles = JsonSerializer.Deserialize>(content) ?? new List(); + + foreach (var recentFile in loadedFiles + .OrderByDescending(file => file.LastOpened) + .Take(maxEntries)) + { + RecentFiles.Add(recentFile); + } + } + catch + { + // ignore broken data and continue with empty recent files + } + } + public void Remember(string filename) { RemoveIfExists(filename);