@page "/Settings/Integrations/Steam" @using LANCommander.Server.Services.Enums @using LANCommander.Server.Settings @using LANCommander.Server.Settings.Models @using LANCommander.Server.UI.Pages.Settings.Components @using Microsoft.Extensions.Options @inject SteamCMDService SteamCmdService @inject IOptions Settings @inject SettingsProvider SettingsProvider @inject IMessageService MessageService @inject ILogger Logger @attribute [Authorize(Roles = RoleService.AdministratorRoleName)]

Profiles

@foreach (var profile in Settings.Value.Server.SteamCMD.Profiles) {
@code { string _rootPath = Path.GetPathRoot(Directory.GetCurrentDirectory()); SteamCmdConnectionStatus _connectionStatus; string _username; string _password; bool _processingLogin; protected override async Task OnInitializedAsync() { if (!Settings.Value.Server.SteamCMD.Profiles.Any()) AddProfile(); } void AddProfile() { Settings.Value.Server.SteamCMD.Profiles.Add(new SteamCmdProfile()); } async Task RemoveProfile(SteamCmdProfile profile) { Settings.Value.Server.SteamCMD.Profiles.Remove(profile); if (!String.IsNullOrWhiteSpace(profile.Username)) { var logoutMessage = new MessageConfig { Content = "Logging out of Steam...", Duration = 0, Key = Guid.NewGuid().ToString() }; MessageService.Loading(logoutMessage); await SteamCmdService.LogoutAsync(profile.Username); logoutMessage.Content = "Successfully logged out from Steam!"; logoutMessage.Duration = 3; MessageService.Success(logoutMessage); } if (!Settings.Value.Server.SteamCMD.Profiles.Any()) AddProfile(); } async Task Save() { try { Settings.Value.Server.SteamCMD.Profiles = Settings.Value.Server.SteamCMD.Profiles.Where(p => !String.IsNullOrWhiteSpace(p.Username)).ToList(); SettingsProvider.Update(s => { s.Server.SteamCMD = Settings.Value.Server.SteamCMD; }); MessageService.Success("Settings saved!"); } catch (Exception ex) { MessageService.Error("An unknown error occurred."); Logger.LogError(ex, "An unknown error occurred."); } } }