@page "/authorities/add"
@using AutoMapper
@using BlazorWebAssemblyVisaApiClient.Validation.Applicants.Models
@using VisaApiClient
@using BlazorWebAssemblyVisaApiClient.Components
@using BlazorWebAssemblyVisaApiClient.Infrastructure.Helpers
@using FluentValidation
@inherits BlazorWebAssemblyVisaApiClient.Components.Base.VisaClientComponentBase
@code
{
private RegisterRequestModel requestModel = new();
private Status status = new();
[Inject] private IValidator RegisterRequestModelValidator { get; set; } = null!;
[Inject] private IMapper Mapper { get; set; } = null!;
private async Task Add()
{
var validationResult = await RegisterRequestModelValidator.ValidateAsync(requestModel);
if (!validationResult.IsValid)
{
status.SetError(validationResult.ToErrorsString());
return;
}
try
{
status.SetMessage("Wait...");
await Client.RegisterAuthorityAsync(Mapper.Map(requestModel));
status.SetSuccess("Success");
}
catch (Exception e)
{
ErrorHandler.Handle(e);
}
}
}