@page "/catalogs" @inject CatalogApiClient Api Catalogs

Catalogs

@if (!string.IsNullOrWhiteSpace(errorMessage)) { } else if (!string.IsNullOrWhiteSpace(infoMessage)) { }
@if (showForm) {
@if (isEditing) {
}
} @if (isLoading) {

Lade Daten...

} else if (items.Count == 0) {

Keine Einträge vorhanden.

} else { @foreach (var item in items) { }
Id Titel String Angelegt von Angelegt am Geändert von Geändert am
@item.Guid @item.CatTitle @item.CatString @item.AddedWho @item.AddedWhen.ToString("g") @item.ChangedWho @(item.ChangedWhen.HasValue ? item.ChangedWhen.Value.ToString("g") : string.Empty)
} @code { private List items = new(); private CatalogWriteDto formModel = new(); private int editingId; private bool isLoading; private bool isEditing; private bool showForm; private string? errorMessage; private string? infoMessage; protected override async Task OnInitializedAsync() { await LoadCatalogs(); } private async Task LoadCatalogs() { isLoading = true; errorMessage = null; try { items = await Api.GetAllAsync(); } catch (Exception ex) { errorMessage = $"Kataloge konnten nicht geladen werden: {ex.Message}"; } finally { isLoading = false; StateHasChanged(); } } private void StartCreate() { formModel = new CatalogWriteDto(); editingId = 0; isEditing = false; showForm = true; infoMessage = null; errorMessage = null; } private void StartEdit(CatalogReadDto item) { formModel = new CatalogWriteDto { CatTitle = item.CatTitle, CatString = item.CatString, UpdateProcedure = 0 }; editingId = item.Guid; isEditing = true; showForm = true; infoMessage = null; errorMessage = null; } private async Task HandleSubmit() { errorMessage = null; infoMessage = null; try { if (isEditing) { var updated = await Api.UpdateAsync(editingId, formModel); if (!updated.Success) { errorMessage = updated.Error ?? "Aktualisierung fehlgeschlagen."; return; } infoMessage = "Katalog aktualisiert."; } else { var created = await Api.CreateAsync(formModel); if (!created.Success || created.Value == null) { errorMessage = created.Error ?? "Anlegen fehlgeschlagen."; return; } infoMessage = "Katalog angelegt."; } showForm = false; await LoadCatalogs(); } catch (Exception ex) { errorMessage = $"Fehler beim Speichern: {ex.Message}"; } } private void CancelEdit() { showForm = false; infoMessage = null; errorMessage = null; } private async Task DeleteCatalog(int id) { errorMessage = null; infoMessage = null; try { var deleted = await Api.DeleteAsync(id); if (!deleted.Success) { errorMessage = deleted.Error ?? "Löschen fehlgeschlagen."; return; } infoMessage = "Katalog gelöscht."; await LoadCatalogs(); } catch (Exception ex) { errorMessage = $"Fehler beim Löschen: {ex.Message}"; } } }