From e48db476036807d1926a3bc50aae53c788df7b0d Mon Sep 17 00:00:00 2001 From: Aaron Powell Date: Thu, 11 Dec 2025 11:57:35 +1100 Subject: [PATCH 1/2] Event handlers weren't initialised, causing null ref exception on launcher start --- .../ImportService.cs | 23 ++++--------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/LANCommander.Launcher.Services/ImportService.cs b/LANCommander.Launcher.Services/ImportService.cs index e5bff7a7..02e728f3 100644 --- a/LANCommander.Launcher.Services/ImportService.cs +++ b/LANCommander.Launcher.Services/ImportService.cs @@ -4,13 +4,6 @@ using LANCommander.Launcher.Services.Import; using LANCommander.Launcher.Services.Import.Factories; using LANCommander.SDK; using LANCommander.SDK.Services; -using Collection = LANCommander.Launcher.Data.Models.Collection; -using Company = LANCommander.Launcher.Data.Models.Company; -using Engine = LANCommander.Launcher.Data.Models.Engine; -using Genre = LANCommander.Launcher.Data.Models.Genre; -using MultiplayerMode = LANCommander.Launcher.Data.Models.MultiplayerMode; -using Platform = LANCommander.Launcher.Data.Models.Platform; -using Tag = LANCommander.Launcher.Data.Models.Tag; namespace LANCommander.Launcher.Services { @@ -23,18 +16,10 @@ namespace LANCommander.Launcher.Services private ImportProgress _importProgress = new(); public ImportProgress Progress => _importProgress; - public AsyncEventHandler OnImportStarted; - public AsyncEventHandler OnImportStatusUpdate; - public AsyncEventHandler OnImportComplete; - public AsyncEventHandler OnImportError; - - private IEnumerable Collections; - private IEnumerable Companies; - private IEnumerable Engines; - private IEnumerable Genres; - private IEnumerable Platforms; - private IEnumerable Tags; - private IEnumerable MultiplayerModes; + public AsyncEventHandler OnImportStarted { get; } = new(); + public AsyncEventHandler OnImportStatusUpdate { get; } = new(); + public AsyncEventHandler OnImportComplete { get; } = new(); + public AsyncEventHandler OnImportError { get; } = new(); public async Task ImportAsync() { From 0992d95bd1b3a53d98f95f35633c54baf3e88586 Mon Sep 17 00:00:00 2001 From: Aaron Powell Date: Thu, 11 Dec 2025 12:09:58 +1100 Subject: [PATCH 2/2] Adding some logging into server connect/disconnect for debugging --- LANCommander.SDK/Rpc/Clients/RpcClient.Base.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/LANCommander.SDK/Rpc/Clients/RpcClient.Base.cs b/LANCommander.SDK/Rpc/Clients/RpcClient.Base.cs index 8cecc206..3b71ae36 100644 --- a/LANCommander.SDK/Rpc/Clients/RpcClient.Base.cs +++ b/LANCommander.SDK/Rpc/Clients/RpcClient.Base.cs @@ -6,10 +6,11 @@ using LANCommander.SDK.Rpc.Client; using LANCommander.SDK.Rpc.Server; using LANCommander.SDK.Services; using Microsoft.AspNetCore.SignalR.Client; +using Microsoft.Extensions.Logging; namespace LANCommander.SDK.Rpc.Clients; -internal partial class RpcSubscriber(ITokenProvider tokenProvider) : IRpcSubscriber +internal partial class RpcSubscriber(ITokenProvider tokenProvider, ILogger logger) : IRpcSubscriber { private HubConnection _connection = default!; @@ -32,8 +33,9 @@ internal partial class RpcSubscriber(ITokenProvider tokenProvider) : IRpcSubscri return true; } - catch + catch(Exception ex) { + logger.LogError(ex, "Failed to connect to RPC server at {ServerAddress}", serverAddress); return false; } } @@ -46,8 +48,9 @@ internal partial class RpcSubscriber(ITokenProvider tokenProvider) : IRpcSubscri return true; } - catch + catch (Exception ex) { + logger.LogError(ex, "Failed to disconnect from RPC server"); return false; } }