@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)
{
}
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");
}