using System.Collections.ObjectModel; using System.Windows.Input; using MauiApp1.Model; using MauiApp1.Services; using System.Threading.Tasks; namespace MauiApp1.ViewModels { public class FournisseurViewModel : BindableObject { private readonly FournisseurDatabase _database; public ObservableCollection Fournisseurs { get; set; } private Fournisseur _selectedFournisseur; public Fournisseur SelectedFournisseur { get => _selectedFournisseur; set { _selectedFournisseur = value; OnPropertyChanged(); } } public ICommand AjouterFournisseurCommand { get; } public ICommand ModifierFournisseurCommand { get; } public ICommand SupprimerFournisseurCommand { get; } public FournisseurViewModel(FournisseurDatabase database) { _database = database; Fournisseurs = new ObservableCollection(); LoadFournisseurs(); AjouterFournisseurCommand = new Command(async () => await AjouterFournisseur()); ModifierFournisseurCommand = new Command(async () => await ModifierFournisseur()); SupprimerFournisseurCommand = new Command(async () => await SupprimerFournisseur()); } private async void LoadFournisseurs() { var fournisseurs = await _database.GetFournisseursAsync(); Fournisseurs.Clear(); foreach (var fournisseur in fournisseurs) { Fournisseurs.Add(fournisseur); } } private async Task AjouterFournisseur() { var nouveauFournisseur = new Fournisseur { Name = "Nouveau", Email = "new@mail.com", Telephone = "0000000000", Address = "Ville" }; await _database.SaveFournisseurAsync(nouveauFournisseur); LoadFournisseurs(); } private async Task ModifierFournisseur() { if (SelectedFournisseur != null) { await _database.SaveFournisseurAsync(SelectedFournisseur); LoadFournisseurs(); } } private async Task SupprimerFournisseur() { if (SelectedFournisseur != null) { await _database.DeleteFournisseurAsync(SelectedFournisseur); LoadFournisseurs(); } } } }