@using LANCommander.Server.Services.Enums @inject SteamCMDService SteamCmdService @inject IMessageService MessageService
@if (_connectionStatus == SteamCmdConnectionStatus.Unauthenticated) { }
@if (_connectionStatus != SteamCmdConnectionStatus.Unauthenticated) { }
@code { [Parameter] public string Username { get; set; } [Parameter] public EventCallback UsernameChanged { get; set; } [Parameter] public string InstallDirectory { get; set; } [Parameter] public EventCallback InstallDirectoryChanged { get; set; } [Parameter] public EventCallback OnAuthenticated { get; set; } string _rootPath = Path.GetPathRoot(Directory.GetCurrentDirectory()); SteamCmdConnectionStatus _connectionStatus = SteamCmdConnectionStatus.Unknown; bool _processingLogin = false; string _password = String.Empty; MessageConfig _loginMessage = new MessageConfig(); protected override async Task OnInitializedAsync() { if (!String.IsNullOrWhiteSpace(Username)) _connectionStatus = await SteamCmdService.GetConnectionStatusAsync(Username); else _connectionStatus = SteamCmdConnectionStatus.Unauthenticated; } async Task Authenticate() { _processingLogin = true; await InvokeAsync(StateHasChanged); _loginMessage.Content = "Logging into Steam..."; _loginMessage.Key = Guid.NewGuid().ToString(); _loginMessage.Duration = 0; MessageService.Loading(_loginMessage); MessageService.Info("Check the Steam mobile app to confirm this login", 10); var success = await SteamCmdService.LoginToSteamAsync(Username, _password); _connectionStatus = await SteamCmdService.GetConnectionStatusAsync(Username); _processingLogin = false; await InvokeAsync(StateHasChanged); if (success) { _loginMessage.Content = "Successfully authenticated to Steam!"; _loginMessage.Duration = 3; MessageService.Success(_loginMessage); _password = String.Empty; if (UsernameChanged.HasDelegate) await UsernameChanged.InvokeAsync(Username); if (InstallDirectoryChanged.HasDelegate) await InstallDirectoryChanged.InvokeAsync(InstallDirectory); if (OnAuthenticated.HasDelegate) await OnAuthenticated.InvokeAsync(); } else { _loginMessage.Content = "Could not authenticate to Steam!"; _loginMessage.Duration = 5; MessageService.Error(_loginMessage); } } }