using HegreHotel.Models; using Microsoft.Maui.Controls; using System.Collections.ObjectModel; using System.IO; using Microsoft.Maui.Storage; namespace HegreHotel.Views { public partial class ClientsPage : ContentPage { public ObservableCollection Clients { get; set; } = new ObservableCollection(); public ClientsPage() { InitializeComponent(); LoadClients(); } // Chargement des clients depuis la BDD private async void LoadClients() { string dbPath = Path.Combine(FileSystem.AppDataDirectory, "HegreHotel.db3"); var db = SingletonConnection.GetInstance(dbPath); var clientsList = await db.Table().ToListAsync(); Clients.Clear(); foreach (var client in clientsList) { Clients.Add(client); } ClientsListView.ItemsSource = Clients; } // Redirige vers la page d'ajout de client private async void OnAjouterClientClicked(object sender, EventArgs e) { await Navigation.PushAsync(new AjouterClientPage()); } // Redirige vers la page de modification du client sélectionné private async void OnModifierClientClicked(object sender, EventArgs e) { var client = ((Button)sender).CommandParameter as Client; if (client != null) { await Navigation.PushAsync(new ModifierClientPage(client)); } } // Suppression du client après confirmation private async void OnSupprimerClientClicked(object sender, EventArgs e) { var client = ((Button)sender).CommandParameter as Client; if (client != null) { bool confirmation = await DisplayAlert("Suppression", "Voulez-vous vraiment supprimer ce client ?", "Oui", "Non"); if (confirmation) { string dbPath = Path.Combine(FileSystem.AppDataDirectory, "HegreHotel.db3"); var db = SingletonConnection.GetInstance(dbPath); await db.DeleteAsync(client); LoadClients(); } } } private void ClientsPage_OnAppearing(object? sender, EventArgs e) { LoadClients(); } } }