@using Moonlight.Frontend.Helpers @using Moonlight.Frontend.Mappers @using Moonlight.Frontend.UI.Admin.Components @using Moonlight.Shared.Http.Requests.Roles @using Moonlight.Shared.Http.Responses.Admin @using ShadcnBlazor.Dialogs @using ShadcnBlazor.Extras.Forms @using ShadcnBlazor.Extras.Toasts @using ShadcnBlazor.Fields @using ShadcnBlazor.Inputs @inherits ShadcnBlazor.Extras.Dialogs.DialogBase @inject HttpClient HttpClient @inject ToastService ToastService Update @Role.Name Update name, description and the permissions the role should grant to its members
Name Description Permissions
Save changes
@code { [Parameter] public Func OnSubmit { get; set; } [Parameter] public RoleDto Role { get; set; } private UpdateRoleDto Request; private List Permissions; protected override void OnInitialized() { Request = RoleMapper.ToUpdate(Role); Permissions = Role.Permissions.ToList(); } private async Task OnSubmitAsync(EditContext editContext, ValidationMessageStore validationMessageStore) { Request.Permissions = Permissions.ToArray(); var response = await HttpClient.PatchAsJsonAsync( $"api/admin/roles/{Role.Id}", Request, Constants.SerializerOptions ); if (!response.IsSuccessStatusCode) { await ProblemDetailsHelper.HandleProblemDetailsAsync(response, Request, validationMessageStore); return false; } await ToastService.SuccessAsync("Role update", $"Role {Request.Name} has been successfully updated"); await OnSubmit.Invoke(); await CloseAsync(); return true; } }