@page "/Settings" @using System.Globalization @using LANCommander.Launcher.Models @inject NavigationManager NavigationManager @inject UpdateService UpdateService @inject SDK.Client Client @inject IMessageService MessageService @inject ILogger Logger @inject LocalizationService LocalizationService
@LocalizationService.GetString("Games") @foreach (var installDirectory in _installDirectories) { @LocalizationService.GetString("Media") @LocalizationService.GetString("UI") @LocalizationService.GetString("Debug")
LANCommander Launcher v@(UpdateService.GetCurrentVersion().ToString()) @code { Settings _settings; List _installDirectories = new(); string[] _supportedCultures = new[] { "en-US", "de", "es", "fr", "it", "pt-BR", "nl", "ja", "zh", "ko", "uk" }; internal class InstallDirectory { internal Guid Id { get; set; } internal string Path { get; set; } public InstallDirectory(string path) { Id = Guid.NewGuid(); Path = path; } } protected override async Task OnInitializedAsync() { _settings = SettingService.GetSettings(); foreach (var installDirectory in _settings.Games.InstallDirectories) { _installDirectories.Add(new InstallDirectory(installDirectory)); } } void Save() { try { _settings.Games.InstallDirectories = _installDirectories.Where(d => !String.IsNullOrWhiteSpace(d.Path)).Select(d => d.Path).ToArray(); SettingService.SaveSettings(_settings); Client.DefaultInstallDirectory = _settings.Games.InstallDirectories.First(); Client.Scripts.Debug = _settings.Debug.EnableScriptDebugging; MessageService.Success(LocalizationService.GetString("SettingsSaved")); } catch (Exception ex) { MessageService.Error(LocalizationService.GetString("AnUnknownErrorOccurred")); Logger.LogError(ex, "An unknown error occurred."); } } async Task CheckForUpdates() { var updateVersion = await UpdateService.CheckForUpdateAsync(); Logger.LogDebug("Checked for update: {UpdateVersion}", updateVersion.Version); if (updateVersion.Version == null) MessageService.Success(LocalizationService.GetString("YouAreOnLatestVersion")); } async Task AddInstallDirectory() { _installDirectories.Add(new InstallDirectory("")); StateHasChanged(); } async Task RemoveInstallDirectory(InstallDirectory installDirectory) { _installDirectories.Remove(installDirectory); } }