From 9eff84ddf828c77b5dde4b9c6f517b9f08900094 Mon Sep 17 00:00:00 2001 From: Cinka Date: Fri, 31 Jan 2025 22:55:01 +0300 Subject: [PATCH] - fix: Server entries cache key to string --- .../ViewModels/Pages/ServerListViewModel.cs | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/Nebula.Launcher/ViewModels/Pages/ServerListViewModel.cs b/Nebula.Launcher/ViewModels/Pages/ServerListViewModel.cs index ec4feb1..5a3bb00 100644 --- a/Nebula.Launcher/ViewModels/Pages/ServerListViewModel.cs +++ b/Nebula.Launcher/ViewModels/Pages/ServerListViewModel.cs @@ -140,7 +140,7 @@ public class ServerViewContainer( ViewHelperService viewHelperService ) { - private readonly Dictionary _entries = new(); + private readonly Dictionary _entries = new(); public void Clear() { @@ -149,10 +149,15 @@ public class ServerViewContainer( public async Task Get(RobustUrl url, ServerStatus? serverStatus = null) { - if (_entries.TryGetValue(url, out var entry)) + lock (_entries) { - return entry; + if (_entries.TryGetValue(url.ToString(), out var entry1)) + { + return entry1; + } } + + Console.WriteLine("Creating new instance... " + url.ToString() + _entries.Keys.ToList().Contains(url.ToString())); try { @@ -165,13 +170,21 @@ public class ServerViewContainer( -1); } - entry = viewHelperService.GetViewModel().WithData(url, serverStatus); + var entry = viewHelperService.GetViewModel().WithData(url, serverStatus); entry.OnFavoriteToggle += () => { if (entry.IsFavorite) serverListViewModel.RemoveFavorite(entry); else serverListViewModel.AddFavorite(entry); }; - _entries.Add(url, entry); + + lock (_entries) + { + if (_entries.TryGetValue(url.ToString(), out var entry1)) + { + return entry1; + } + _entries.Add(url.ToString(), entry); + } return entry; }