using HegreHotel.Models; using Microsoft.Maui.Controls; using System.Collections.ObjectModel; using System.IO; using Microsoft.Maui.Storage; namespace HegreHotel.Views.Chambre { public partial class ChambresPage : ContentPage { public ObservableCollection Chambres { get; set; } = new ObservableCollection(); public ChambresPage() { InitializeComponent(); LoadChambres(); } private async void LoadChambres() { string dbPath = Path.Combine(FileSystem.AppDataDirectory, "HegreHotel.db3"); var db = SingletonConnection.GetInstance(dbPath); var chambresList = await db.Table().ToListAsync(); Chambres.Clear(); foreach (var chambre in chambresList) { Chambres.Add(chambre); } ChambresListView.ItemsSource = Chambres; } private async void OnAjouterChambreClicked(object sender, EventArgs e) { await Navigation.PushAsync(new AjouterChambrePage()); } private async void OnModifierChambreClicked(object sender, EventArgs e) { var chambre = ((Button)sender).CommandParameter as Models.Chambre; if (chambre != null) { await Navigation.PushAsync(new ModifierChambrePage(chambre)); } } private async void OnSupprimerChambreClicked(object sender, EventArgs e) { var chambre = ((Button)sender).CommandParameter as Models.Chambre; if (chambre != null) { bool confirmation = await DisplayAlert("Suppression", "Voulez-vous vraiment supprimer cette chambre ?", "Oui", "Non"); if (confirmation) { string dbPath = Path.Combine(FileSystem.AppDataDirectory, "HegreHotel.db3"); var db = SingletonConnection.GetInstance(dbPath); await db.DeleteAsync(chambre); LoadChambres(); } } } private void ChambresPage_OnAppearing(object? sender, EventArgs e) { LoadChambres(); } } }