using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; using MangaMap.Stub; namespace MangaMap.Model { /// /// Classe responsable de la gestion globale de l'application de gestion de listes d'anime. /// public class Manager : System.ComponentModel.INotifyPropertyChanged { /// /// Obtient ou définit le gestionnaire de persistance utilisé pour charger et sauvegarder les données. /// public IPersistanceManager Persistance { get; set; } /// /// Obtient la liste des administrateurs de l'application. /// public List Admins { get; private set; } /// /// Obtient la liste des utilisateurs de l'application. /// public List Utilisateurs { get; private set; } private ObservableCollection oeuvres; /// /// Obtient ou définit la collection observable des oeuvres de l'application. /// public ObservableCollection Oeuvres { get { return oeuvres; } set { oeuvres = value; OnPropertyChanged(); } } public event PropertyChangedEventHandler? PropertyChanged; void OnPropertyChanged([CallerMemberName] string propertyName = null) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); /// /// Obtient ou définit l'utilisateur actuellement connecté à l'application. /// public Utilisateur UtilisateurActuel { get; set; } /// /// Obtient ou définit une valeur indiquant si l'utilisateur actuel est un administrateur. /// public bool isAdmin { get; set; } /// /// Initialise une nouvelle instance de la classe Manager avec un gestionnaire de persistance spécifié. /// /// Le gestionnaire de persistance à utiliser. public Manager(IPersistanceManager Pers) { Admins = new List(); Utilisateurs = new List(); Oeuvres = new ObservableCollection(); UtilisateurActuel = new Utilisateur(); isAdmin = false; Persistance = Pers; } /// /// Initialise une nouvelle instance par défaut de la classe Manager. /// public Manager() { Admins = new List(); Utilisateurs = new List(); Oeuvres = new ObservableCollection(); UtilisateurActuel = new Utilisateur(); isAdmin = false; } /*public Utilisateur charger() { var donnees = Persistance.chargeDonne(); foreach (var item in donnees.Item1) { Oeuvres.Add(item); } Utilisateurs.AddRange(donnees.Item2); // récupérer le premier utilisateur de la liste Utilisateurs : Utilisateur utilisateurActuel = Utilisateurs.FirstOrDefault(); return utilisateurActuel; // Renvoyez l'utilisateur actuel }*/ /// /// Charge les données de l'application à partir du gestionnaire de persistance. /// public void charger() { var donne = Persistance.chargeDonne(); foreach (var item in donne.Item1) { Oeuvres.Add(item); } Utilisateurs.AddRange(donne.Item2); } /// /// Sauvegarde les données de l'application en utilisant le gestionnaire de persistance. /// public void sauvegarder() { Persistance.sauvegarder(Oeuvres, Utilisateurs); } } }