76 lines
2.4 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|
|
}
|