@page "/users" @using OnProfNext.Client.Services @using OnProfNext.Shared.Models @inject UserApiService UserService

Benutzerübersicht

@if (errorMessage is not null) {
@errorMessage
} else if (users is null) {

Lade Daten...

} else if (!users.Any()) {

Keine Benutzer gefunden.

} else { @foreach (var u in users) { }
Username Vorname Nachname E-Mail Mandant
@u.Username @u.FirstName @u.LastName @u.Email @u.MandantId
} @if (selectedUser is not null) { } @if (showDeleteConfirm && selectedUser is not null) { } @code { private List? users; private string? errorMessage; private User? selectedUser; private bool showDeleteConfirm = false; private string deleteConfirmInput = string.Empty; private bool IsDeleteConfirmed => selectedUser is not null && deleteConfirmInput == selectedUser.Username; protected override async Task OnInitializedAsync() { var result = await UserService.GetUsersAsync(); if (!result.Success) { errorMessage = result.Error; return; } users = result.Data; } private void OpenUserDetail(int id) { selectedUser = users?.FirstOrDefault(u => u.Id == id); } private void CloseModal() { selectedUser = null; showDeleteConfirm = false; deleteConfirmInput = string.Empty; } private void OnDeleteConfirmInputChanged(ChangeEventArgs e) { deleteConfirmInput = e.Value?.ToString() ?? string.Empty; StateHasChanged(); } private void ShowDeleteConfirm() { showDeleteConfirm = true; deleteConfirmInput = string.Empty; } private void CloseDeleteConfirm() { showDeleteConfirm = false; deleteConfirmInput = string.Empty; } //Delete Action private async Task ConfirmDeleteUser() { if(selectedUser is null) { return; } var result = await UserService.DeleteUserAsync(selectedUser.Id); if(!result.Success) { errorMessage = result.Error; return; } users?.Remove(selectedUser); CloseModal(); StateHasChanged(); } private async Task UpdateUserAsync() { if(selectedUser is null) { return; } var result = await UserService.UpdateUserAsync(selectedUser); if(!result.Success) { errorMessage = result.Error; return; } //Modal schließen und Liste aktualisieren CloseModal(); var updated = await UserService.GetUsersAsync(); users = updated.Data; StateHasChanged(); } }