diff --git a/Services/ClientConfigService.cs b/Services/ClientConfigService.cs index f4770a2..8fa16ee 100644 --- a/Services/ClientConfigService.cs +++ b/Services/ClientConfigService.cs @@ -66,8 +66,23 @@ public sealed class ClientConfigService : IConfigService SaveConfig(); } - public string GetDeviceId() => _config.DeviceId ?? string.Empty; - public void SetDeviceId(string deviceId) { _config.DeviceId = deviceId ?? string.Empty; SaveConfig(); } + public string GetDeviceId() + { + if (!string.IsNullOrWhiteSpace(_config.DeviceId)) + return _config.DeviceId.Trim(); + + _config.DeviceId = ResolveMachineDeviceId(); + SaveConfig(); + return _config.DeviceId; + } + + public void SetDeviceId(string deviceId) + { + _config.DeviceId = string.IsNullOrWhiteSpace(deviceId) + ? ResolveMachineDeviceId() + : deviceId.Trim(); + SaveConfig(); + } public bool GetRememberAdminCredentials() => _config.RememberAdminCredentials; public void SetRememberAdminCredentials(bool remember) { _config.RememberAdminCredentials = remember; SaveConfig(); } @@ -133,6 +148,14 @@ public sealed class ClientConfigService : IConfigService } } + private static string ResolveMachineDeviceId() + { + var machineName = Environment.MachineName; + return string.IsNullOrWhiteSpace(machineName) + ? Guid.NewGuid().ToString("N") + : machineName.Trim(); + } + private static string EncryptPassword(string plain) { if (string.IsNullOrEmpty(plain)) return string.Empty; diff --git a/UtopiaCanteen.Client/App.xaml.cs b/UtopiaCanteen.Client/App.xaml.cs index d444887..bf98d68 100644 --- a/UtopiaCanteen.Client/App.xaml.cs +++ b/UtopiaCanteen.Client/App.xaml.cs @@ -34,7 +34,10 @@ public partial class App : Application } var configService = new ClientConfigService(); - FileLogger.Info("ClientApp", $"Backend base URL={configService.GetBackendBaseUrl()}"); + FileLogger.Info("ClientApp", $"BackendBaseUrl = {configService.GetBackendBaseUrl()}"); + FileLogger.Info( + "ClientApp", + $"Device ID resolved. MachineName={Environment.MachineName}, DeviceId={configService.GetDeviceId()}"); FileLogger.Info("ClientApp", $"Logs directory={LogPaths.ClientLogsDirectory}"); var httpClient = new HttpClient { Timeout = TimeSpan.FromMinutes(5) };