diff --git a/qtc-net-client-2/Services/LoggingService.cs b/QtCNETAPI/Services/LoggingService.cs similarity index 79% rename from qtc-net-client-2/Services/LoggingService.cs rename to QtCNETAPI/Services/LoggingService.cs index e3d4af2..30d5155 100644 --- a/qtc-net-client-2/Services/LoggingService.cs +++ b/QtCNETAPI/Services/LoggingService.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; using System.Diagnostics; using System.Text.Json; -namespace qtc_net_client_2.Services +namespace QtCNETAPI.Services { public class LoggingService : IDisposable { @@ -16,7 +16,7 @@ namespace qtc_net_client_2.Services public LoggingService() { LogDate = DateTime.Now; - LogFilePath = $"./Logs/QtCClientLog_{LogDate.ToString("ddMMyyy-hhmm")}.log"; + LogFilePath = $"./Logs/QtCClientLog_{LogDate:ddMMyyy-hhmm}.log"; // create log file @@ -30,8 +30,8 @@ namespace qtc_net_client_2.Services { try { - Debug.WriteLine($"({DateTime.Now.ToLocalTime().ToString("hh:mm")}) {message}"); - LogFile.WriteLine($"({DateTime.Now.ToLocalTime().ToString("hh:mm")}) {message}"); + Debug.WriteLine($"({DateTime.Now.ToLocalTime():hh:mm}) {message}"); + LogFile.WriteLine($"({DateTime.Now.ToLocalTime():hh:mm}) {message}"); } catch (ObjectDisposedException) { } @@ -45,8 +45,8 @@ namespace qtc_net_client_2.Services string modelSerialized = JsonSerializer.Serialize(model, options: new JsonSerializerOptions { WriteIndented = true }); // log it - Debug.WriteLine($"({DateTime.Now.ToLocalTime().ToString("hh:mm")}) {modelSerialized}"); - LogFile.WriteLine($"({DateTime.Now.ToLocalTime().ToString("hh:mm")}) {modelSerialized}"); + Debug.WriteLine($"({DateTime.Now.ToLocalTime():hh:mm}) {modelSerialized}"); + LogFile.WriteLine($"({DateTime.Now.ToLocalTime():hh:mm}) {modelSerialized}"); } catch (ObjectDisposedException) { } diff --git a/qtc-net-client-2/Forms/Main.cs b/qtc-net-client-2/Forms/Main.cs index bdd37a2..2f4adde 100644 --- a/qtc-net-client-2/Forms/Main.cs +++ b/qtc-net-client-2/Forms/Main.cs @@ -8,6 +8,7 @@ using qtc_net_client_2.Services; using qtc_net_client_2.ClientModel; using System.Threading.Tasks; using QtCNETAPI.Schema; +using QtCNETAPI.Services; namespace qtc_net_client_2 { @@ -15,7 +16,9 @@ namespace qtc_net_client_2 { private IApiService _apiService; private IGatewayService _gatewayService; + private Config _config; + private ServerConfig _serverConfig; private AudioService AudioService = new(); private LoggingService LoggingService; @@ -878,8 +881,36 @@ namespace qtc_net_client_2 else Environment.Exit(0); } - private void _gatewayService_OnServerReconnecting(object? sender, EventArgs e) => BeginInvoke(delegate () { Enabled = false; }); - private void _gatewayService_OnServerReconnected(object? sender, EventArgs e) => BeginInvoke(delegate () { Enabled = true; }); + private void _gatewayService_OnServerReconnecting(object? sender, EventArgs e) + { + var args = (ServerConnectionReconnectingEventArgs)e; + + if (args.Error == null) + LoggingService.LogString("Server Requested Reconnect. Reconnecting..."); + else + LoggingService.LogString($"SignalR Reconnecting Due To An Error.\n{args.Error.Message}\n{args.Error.StackTrace}"); + + if (IsHandleCreated && !IsDisposed) + { + Invoke(delegate () + { + Enabled = false; + }); + } + } + + private void _gatewayService_OnServerReconnected(object? sender, EventArgs e) + { + LoggingService.LogString("SignalR Reconnected"); + + if (IsHandleCreated && !IsDisposed) + { + Invoke(delegate () + { + Enabled = true; + }); + } + } private async void _gatewayService_OnServerConfigReceived(object? sender, EventArgs e) { @@ -888,8 +919,11 @@ namespace qtc_net_client_2 LoggingService.LogString($"Server Config Received"); LoggingService.LogModel(args.ServerConfig); + if (_serverConfig != null) return; // only set server config upon client restart, not during reconnect (preventing log spam) + if (args.ServerConfig != null) { + _serverConfig = args.ServerConfig; if (args.ServerConfig.IsDown) { LoggingService.LogString("Server Is Marked As Down"); diff --git a/qtc-net-client-2/Forms/StoreItemDisplay.cs b/qtc-net-client-2/Forms/StoreItemDisplay.cs index 7409c14..361ede8 100644 --- a/qtc-net-client-2/Forms/StoreItemDisplay.cs +++ b/qtc-net-client-2/Forms/StoreItemDisplay.cs @@ -1,6 +1,6 @@ -using qtc_net_client_2.Services; -using QtCNETAPI.Dtos.User; +using QtCNETAPI.Dtos.User; using QtCNETAPI.Schema; +using QtCNETAPI.Services; using QtCNETAPI.Services.ApiService; using System; using System.Collections.Generic; diff --git a/qtc-net-client-2/Program.cs b/qtc-net-client-2/Program.cs index 32bc449..0d4b875 100644 --- a/qtc-net-client-2/Program.cs +++ b/qtc-net-client-2/Program.cs @@ -1,5 +1,6 @@ using qtc_net_client_2.ClientModel; using qtc_net_client_2.Services; +using QtCNETAPI.Services; using QtCNETAPI.Services.ApiService; using QtCNETAPI.Services.GatewayService; using System.Text.Json;