AppSAV/MauiApp1/ViewModels/FournisseurViewModel.cs

76 lines
2.4 KiB
C#

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<Fournisseur> 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<Fournisseur>();
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();
}
}
}
}