HegreHotel/Views/Reservation/ReservationsPage.xaml.cs
2025-03-13 17:49:25 +01:00

68 lines
2.4 KiB
C#

using HegreHotel.Models;
using Microsoft.Maui.Controls;
using System.Collections.ObjectModel;
using System.IO;
using Microsoft.Maui.Storage;
namespace HegreHotel.Views.Reservation
{
public partial class ReservationsPage : ContentPage
{
public ObservableCollection<Models.Reservation> Reservations { get; set; } = new ObservableCollection<Models.Reservation>();
public ReservationsPage()
{
InitializeComponent();
LoadReservations();
}
private async void LoadReservations()
{
string dbPath = Path.Combine(FileSystem.AppDataDirectory, "HegreHotel.db3");
var db = SingletonConnection.GetInstance(dbPath);
var reservationsList = await db.Table<Models.Reservation>().ToListAsync();
Reservations.Clear();
foreach (var reservation in reservationsList)
{
Reservations.Add(reservation);
}
ReservationsListView.ItemsSource = Reservations;
}
private async void OnAjouterReservationClicked(object sender, EventArgs e)
{
await Navigation.PushAsync(new AjouterReservationPage());
}
private async void OnModifierReservationClicked(object sender, EventArgs e)
{
var reservation = ((Button)sender).CommandParameter as Models.Reservation;
if (reservation != null)
{
await Navigation.PushAsync(new ModifierReservationPage(reservation));
}
}
private async void OnSupprimerReservationClicked(object sender, EventArgs e)
{
var reservation = ((Button)sender).CommandParameter as Models.Reservation;
if (reservation != null)
{
bool confirmation = await DisplayAlert("Suppression", "Voulez-vous vraiment supprimer cette réservation ?", "Oui", "Non");
if (confirmation)
{
string dbPath = Path.Combine(FileSystem.AppDataDirectory, "HegreHotel.db3");
var db = SingletonConnection.GetInstance(dbPath);
await db.DeleteAsync(reservation);
LoadReservations();
}
}
}
private void ReservationsPage_OnAppearing(object? sender, EventArgs e)
{
LoadReservations();
}
}
}