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

72 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
{
public partial class ClientsPage : ContentPage
{
public ObservableCollection<Client> Clients { get; set; } = new ObservableCollection<Client>();
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<Client>().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();
}
}
}