@page "/authorities/{authorityId}/{oldEmail}" @using BlazorWebAssemblyVisaApiClient.Common.Exceptions @using BlazorWebAssemblyVisaApiClient.Components @using BlazorWebAssemblyVisaApiClient.Infrastructure.Helpers @using BlazorWebAssemblyVisaApiClient.Infrastructure.Services.UserDataProvider @using FluentValidation @using VisaApiClient @inherits BlazorWebAssemblyVisaApiClient.Components.Base.VisaClientComponentBase



@code { private Status status = null!; private ChangeAuthData model = new(); [Parameter] public string AuthorityId { get; set; } = null!; [Parameter] public string OldEmail { get; set; } = null!; [Inject] private IUserDataProvider UserDataProvider { get; set; } = null!; [Inject] private IValidator ChangeUserAuthDataRequestValidator { get; set; } = null!; protected override void OnInitialized() { try { if (UserDataProvider.CurrentRole is not Constants.AdminRole) { throw new NotLoggedInException(); } model.Email = OldEmail; } catch (Exception e) { ErrorHandler.Handle(e); } } private async Task Save() { var request = new ChangeUserAuthDataRequest { UserId = Guid.Parse(AuthorityId), NewAuthData = model }; var validationResult = await ChangeUserAuthDataRequestValidator.ValidateAsync(request); if (!validationResult.IsValid) { status.SetError(validationResult.ToErrorsString()); return; } try { status.SetMessage("Wait..."); await Client.ChangeAuthorityAuthDataAsync(request); status.SetSuccess("Success"); } catch (Exception e) { ErrorHandler.Handle(e); } } }