@using LANCommander.SDK.Exceptions @using LANCommander.SDK.Models @namespace LANCommander.Launcher.UI.Components @inject AuthenticationService AuthenticationService @inject SDK.Client Client @inject NavigationManager NavigationManager @inject IMessageService MessageService @inject ILogger Logger @inject ImportManagerService ImportManagerService @inject LocalizationService LocalizationService @LocalizationService.GetString("Register")
@foreach (var item in Errors) { } @code { [Parameter] public Uri ServerAddress { get; set; } [Parameter] public EventCallback OnBack { get; set; } [Parameter] public IEnumerable Errors { get; set; } = []; RegistrationRequest Model = new(); bool Loading = false; private Uri? PreviousServerAddress; protected override async Task OnParametersSetAsync() { if (ServerAddress != PreviousServerAddress) await Client.Connection.UpdateServerAddressAsync(ServerAddress.ToString()); PreviousServerAddress = ServerAddress; ClearErrors(); } protected void ClearErrors() { Errors = []; StateHasChanged(); } async Task OnFinish(EditContext editContext) { Loading = true; try { ClearErrors(); await AuthenticationService.Register(Model.UserName, Model.Password, Model.PasswordConfirmation); await ImportManagerService.RequestImport(); NavigationManager.NavigateTo("/"); } catch (RegisterFailedException ex) { Errors = ex.ErrorData.Details?.Select(x => x.Message) ?? []; MessageService.Error(ex.Message, 5); } catch (Exception ex) { MessageService.Error(ex.Message, 5); Logger.LogError(ex, ex.Message); } finally { Loading = false; } } }