@page "/booking-entry" @using OnProfNext.Client.Services @using OnProfNext.Shared.Models.DTOs @inject BookingApiService BookingService @inject OrderApiService OrderService @inject NavigationManager Navigation

Zeit buchen

@if (isLoading) {

Daten werden geladen...

} else if (errorMessage is not null) {
@errorMessage
} else {
@if (activeView == ViewType.Classic) { } else { }
} @code { private enum ViewType { Classic, Fancy } private ViewType activeView = ViewType.Classic; private bool isLoading = true; private string? errorMessage; private List MyBookings = new(); private List AvailableOrders = new(); protected override async Task OnInitializedAsync() { await LoadDataAsync(); isLoading = false; } private async Task LoadDataAsync() { try { // Lade Bookings des Users var (bookingSuccess, bookings, bookingError) = await BookingService.GetMyBookingsAsync(); if (!bookingSuccess) { errorMessage = bookingError; return; } MyBookings = bookings ?? new(); // Lade Orders des Users var (orderSuccess, orders, orderError) = await OrderService.GetMyOrdersAsync(); if (!orderSuccess) { errorMessage = orderError; return; } AvailableOrders = orders ?? new(); } catch (Exception ex) { errorMessage = $"Fehler beim Laden der Daten: {ex.Message}"; } } private async Task ReloadBookings() { var (success, bookings, error) = await BookingService.GetMyBookingsAsync(); if (success) { MyBookings = bookings ?? new(); StateHasChanged(); } else { errorMessage = error; } } private void ShowError(string error) { errorMessage = error; StateHasChanged(); } private void GoBack() => Navigation.NavigateTo("/projects"); }