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

68 lines
2.2 KiB
C#

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<Models.Chambre> Chambres { get; set; } = new ObservableCollection<Models.Chambre>();
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<Models.Chambre>().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();
}
}
}