@using LANCommander.SDK.Exceptions @using LANCommander.SDK.Models @inject AuthenticationService AuthenticationService @inject SDK.Client Client @inject NavigationManager NavigationManager @inject IMessageService MessageService @inject ILogger Logger @inject ImportManagerService ImportManagerService Register
@foreach (var item in Errors) { } @code { [Parameter] public string ServerAddress { get; set; } [Parameter] public EventCallback OnBack { get; set; } [Parameter] public IEnumerable Errors { get; set; } = []; RegistrationRequest Model = new(); bool Loading = false; Models.Settings Settings = SettingService.GetSettings(); protected override async Task OnParametersSetAsync() { await Client.ChangeServerAddressAsync(ServerAddress); ClearErrors(); } protected void ClearErrors() { Errors = []; StateHasChanged(); } async Task OnFinish(EditContext editContext) { Loading = true; try { ClearErrors(); await AuthenticationService.Register(Client.GetServerAddress(), 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; } } async Task UseToken(AuthToken token) { Settings.Authentication.AccessToken = token.AccessToken; Settings.Authentication.RefreshToken = token.RefreshToken; try { await AuthenticationService.Login(ServerAddress, token); await ImportManagerService.RequestImport(); NavigationManager.NavigateTo("/"); } catch (Exception ex) { MessageService.Error(ex.Message, 5); Logger.LogError(ex, ex.Message); Loading = false; } } }