diff --git a/MangaMap/Model/Admin.cs b/MangaMap/Model/Admin.cs
index 23a1969..a78ef54 100644
--- a/MangaMap/Model/Admin.cs
+++ b/MangaMap/Model/Admin.cs
@@ -7,8 +7,17 @@ using System.Threading.Tasks;
namespace MangaMap.Model
{
+ ///
+ /// Représente un administrateur dans le système de gestion de listes d'anime.
+ ///
public class Admin : Personne
{
+ ///
+ /// Initialise une nouvelle instance de la classe Admin avec les informations spécifiées.
+ ///
+ /// Le mot de passe de l'administrateur.
+ /// L'adresse e-mail de l'administrateur.
+ /// Le pseudo de l'administrateur.
public Admin(string motDePasse, string email, string pseudo)
{
MotDePasse = motDePasse;
@@ -16,8 +25,14 @@ namespace MangaMap.Model
Pseudo = pseudo;
}
+ ///
+ /// Méthode permettant d'ajouter un anime.
+ ///
public void ajouterAnime() { }
+ ///
+ /// Méthode permettant de supprimer un anime.
+ ///
public void supprimerAnime() { }
}
}
diff --git a/MangaMap/Model/Manager.cs b/MangaMap/Model/Manager.cs
index 8a8eb07..095f99c 100644
--- a/MangaMap/Model/Manager.cs
+++ b/MangaMap/Model/Manager.cs
@@ -10,18 +10,33 @@ 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;
- public ObservableCollection Oeuvres
- {
+ ///
+ /// Obtient ou définit la collection observable des oeuvres de l'application.
+ ///
+ public ObservableCollection Oeuvres
+ {
get
{
return oeuvres;
@@ -32,15 +47,28 @@ namespace MangaMap.Model
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; }
- public Manager(IPersistanceManager Pers) {
+ ///
+ /// 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();
@@ -50,6 +78,9 @@ namespace MangaMap.Model
Persistance = Pers;
}
+ ///
+ /// Initialise une nouvelle instance par défaut de la classe Manager.
+ ///
public Manager()
{
Admins = new List();
@@ -74,6 +105,9 @@ namespace MangaMap.Model
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();
@@ -84,11 +118,12 @@ namespace MangaMap.Model
Utilisateurs.AddRange(donne.Item2);
}
-
-
+ ///
+ /// Sauvegarde les données de l'application en utilisant le gestionnaire de persistance.
+ ///
public void sauvegarder()
{
Persistance.sauvegarder(Oeuvres, Utilisateurs);
}
}
-}
\ No newline at end of file
+}
diff --git a/MangaMap/Model/Oeuvre.cs b/MangaMap/Model/Oeuvre.cs
index e8823e1..877adc6 100644
--- a/MangaMap/Model/Oeuvre.cs
+++ b/MangaMap/Model/Oeuvre.cs
@@ -10,6 +10,9 @@ using System.Runtime.CompilerServices;
namespace MangaMap.Model
{
+ ///
+ /// Représente une oeuvre dans le système de gestion de listes d'anime.
+ ///
[DataContract]
public class Oeuvre : INotifyPropertyChanged
{
@@ -18,17 +21,36 @@ namespace MangaMap.Model
void OnPropertyChanged([CallerMemberName] string propertyName = null)
=> PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
+ ///
+ /// Obtient ou définit le nom de l'oeuvre.
+ ///
[DataMember]
public string Nom { get; private set; }
+
+ ///
+ /// Obtient ou définit les genres de l'oeuvre.
+ ///
[DataMember]
public List Genre { get; private set; }
+
+ ///
+ /// Obtient ou définit le type de l'oeuvre.
+ ///
[DataMember]
public string Type { get; private set; }
+
+ ///
+ /// Obtient ou définit la description de l'oeuvre.
+ ///
[DataMember]
public string Description { get; private set; }
+ ///
+ /// Obtient ou définit la note de l'oeuvre.
+ ///
[DataMember]
- public int Note {
+ public int Note
+ {
get => note;
set
{
@@ -40,11 +62,28 @@ namespace MangaMap.Model
}
private int note;
+ ///
+ /// Obtient ou définit le nombre d'épisodes de l'oeuvre.
+ ///
[DataMember]
public int NbEpisodes { get; private set; }
+
+ ///
+ /// Obtient ou définit l'affiche de l'oeuvre.
+ ///
[DataMember]
public string Affiche { get; private set; }
+ ///
+ /// Initialise une nouvelle instance de la classe Oeuvre avec les informations spécifiées.
+ ///
+ /// Le nom de l'oeuvre.
+ /// Les genres de l'oeuvre.
+ /// Le type de l'oeuvre.
+ /// La description de l'oeuvre.
+ /// La note de l'oeuvre.
+ /// Le nombre d'épisodes de l'oeuvre.
+ /// L'affiche de l'oeuvre.
public Oeuvre(string nom, List genre, string type, string description, int note, int nbEpisode, string affiche)
{
Nom = nom;
@@ -56,6 +95,14 @@ namespace MangaMap.Model
Affiche = affiche;
}
+ ///
+ /// Initialise une nouvelle instance de la classe Oeuvre avec les informations spécifiées.
+ ///
+ /// Le nom de l'oeuvre.
+ /// Le type de l'oeuvre.
+ /// La description de l'oeuvre.
+ /// Le nombre d'épisodes de l'oeuvre.
+ /// L'affiche de l'oeuvre.
public Oeuvre(string nom, string type, string description, int nbEpisode, string affiche)
{
Nom = nom;
@@ -65,9 +112,13 @@ namespace MangaMap.Model
Affiche = affiche;
}
+ ///
+ /// Méthode permettant d'ajouter un certain nombre d'épisodes à l'oeuvre.
+ ///
+ /// Le nombre d'épisodes à ajouter.
public void AjouterEpisode(int nb)
{
NbEpisodes = NbEpisodes + nb;
}
}
-}
\ No newline at end of file
+}
diff --git a/MangaMap/Model/Personne.cs b/MangaMap/Model/Personne.cs
index 26c388f..43b00d0 100644
--- a/MangaMap/Model/Personne.cs
+++ b/MangaMap/Model/Personne.cs
@@ -7,16 +7,35 @@ using System.Threading.Tasks;
namespace MangaMap.Model
{
+ ///
+ /// Représente une personne dans le système de gestion de listes d'anime.
+ ///
[DataContract]
public class Personne
{
+ ///
+ /// Obtient ou définit le mot de passe de la personne.
+ ///
[DataMember]
- public string MotDePasse { get; set; }
+ public string MotDePasse { get; set; }
+
+ ///
+ /// Obtient ou définit l'adresse e-mail de la personne.
+ ///
[DataMember]
- public string Email { get; set; }
+ public string Email { get; set; }
+
+ ///
+ /// Obtient ou définit le pseudo de la personne.
+ ///
[DataMember]
- public string Pseudo { get; set; }
+ public string Pseudo { get; set; }
+ ///
+ /// Modifie le mot de passe de la personne en vérifiant une confirmation.
+ ///
+ /// Le nouveau mot de passe.
+ /// True si la modification a réussi, False sinon.
public bool MofifierMotDePasse(string MotDePasse)
{
string test = "";
@@ -31,6 +50,11 @@ namespace MangaMap.Model
return false;
}
+ ///
+ /// Modifie l'adresse e-mail de la personne en vérifiant une confirmation.
+ ///
+ /// La nouvelle adresse e-mail.
+ /// True si la modification a réussi, False sinon.
public bool MofifierEmail(string Email)
{
string test = "";
@@ -45,6 +69,11 @@ namespace MangaMap.Model
return false;
}
+ ///
+ /// Modifie le pseudo de la personne en vérifiant une confirmation.
+ ///
+ /// Le nouveau pseudo.
+ /// True si la modification a réussi, False sinon.
public bool MofifierPseudo(string Pseudo)
{
string test = "";
diff --git a/MangaMap/Model/Utilisateur.cs b/MangaMap/Model/Utilisateur.cs
index 03f6aa9..bc70eff 100644
--- a/MangaMap/Model/Utilisateur.cs
+++ b/MangaMap/Model/Utilisateur.cs
@@ -8,26 +8,69 @@ using System.Threading.Tasks;
namespace MangaMap.Model
{
+ ///
+ /// Représente un utilisateur de l'application de gestion de listes d'anime.
+ ///
[DataContract]
public class Utilisateur : Personne
{
+ ///
+ /// Obtient ou définit le nom de l'utilisateur.
+ ///
[DataMember]
public string nom { get; private set; }
- [DataMember]
+
+ ///
+ /// Obtient ou définit le prénom de l'utilisateur.
+ ///
+ [DataMember]
public string prenom { get; private set; }
- [DataMember]
+
+ ///
+ /// Obtient ou définit l'âge de l'utilisateur.
+ ///
+ [DataMember]
public int age { get; private set; }
- [DataMember]
+
+ ///
+ /// Obtient ou définit la liste des oeuvres en visionnage de l'utilisateur.
+ ///
+ [DataMember]
public ObservableCollection ListeOeuvreEnVisionnage { get; set; }
- [DataMember]
+
+ ///
+ /// Obtient ou définit la liste des oeuvres déjà vues par l'utilisateur.
+ ///
+ [DataMember]
public ObservableCollection ListeOeuvreDejaVu { get; set; }
+
+ ///
+ /// Obtient ou définit la liste des oeuvres à voir ultérieurement par l'utilisateur.
+ ///
[DataMember]
public ObservableCollection ListeOeuvrePourPlusTard { get; set; }
+
+ ///
+ /// Obtient ou définit la liste des oeuvres favorites de l'utilisateur.
+ ///
[DataMember]
public ObservableCollection ListeOeuvreFavorites { get; set; }
+
+ ///
+ /// Obtient ou définit le dictionnaire des notes et nombres associés par l'utilisateur.
+ ///
[DataMember]
- public Dictionary> notesNombres { get; set; }
+ public Dictionary> notesNombres { get; set; }
+ ///
+ /// Initialise une nouvelle instance de la classe Utilisateur avec les paramètres spécifiés.
+ ///
+ /// L'adresse email de l'utilisateur.
+ /// Le pseudo de l'utilisateur.
+ /// Le mot de passe de l'utilisateur.
+ /// Le nom de l'utilisateur.
+ /// Le prénom de l'utilisateur.
+ /// L'âge de l'utilisateur.
public Utilisateur(string email, string pseudo, string mdp, string nom, string prenom, int age)
{
Email = email;
@@ -44,7 +87,11 @@ namespace MangaMap.Model
notesNombres = new Dictionary>();
}
- public Utilisateur() {
+ ///
+ /// Initialise une nouvelle instance par défaut de la classe Utilisateur.
+ ///
+ public Utilisateur()
+ {
ListeOeuvreEnVisionnage = new ObservableCollection();
ListeOeuvreDejaVu = new ObservableCollection();
ListeOeuvrePourPlusTard = new ObservableCollection();
@@ -52,6 +99,9 @@ namespace MangaMap.Model
notesNombres = new Dictionary>();
}
+ ///
+ /// Supprime l'utilisateur en réinitialisant les propriétés nom, prénom et âge.
+ ///
public void SupprimerUtilisateur()
{
this.nom = null;
@@ -59,4 +109,4 @@ namespace MangaMap.Model
this.age = 0;
}
}
-}
\ No newline at end of file
+}
diff --git a/MangaMap/Stub/DataContract.cs b/MangaMap/Stub/DataContract.cs
index 8a2dffb..1f3ba71 100644
--- a/MangaMap/Stub/DataContract.cs
+++ b/MangaMap/Stub/DataContract.cs
@@ -9,14 +9,27 @@ using System.Text;
using System.Threading.Tasks;
using System.Xml;
-
namespace MangaMap.Stub
{
+ ///
+ /// Implémentation de l'interface IPersistanceManager utilisant la sérialisation avec DataContract.
+ ///
public class DataContract : IPersistanceManager
{
+ ///
+ /// Obtient ou définit le nom du fichier de sauvegarde.
+ ///
public string FileName { get; set; } = "SauvegardeDonnees.xml";
+
+ ///
+ /// Obtient ou définit le chemin du fichier de sauvegarde.
+ ///
public string FilePath { get; set; } = Path.Combine(AppDomain.CurrentDomain.BaseDirectory);
+ ///
+ /// Charge les données sauvegardées à partir du fichier xml.
+ ///
+ /// Un tuple contenant la liste des oeuvres et la liste des utilisateurs.
public (ObservableCollection, List) chargeDonne()
{
var serializer = new DataContractSerializer(typeof(DataToPersist));
@@ -37,6 +50,11 @@ namespace MangaMap.Stub
return (data.Oeuvres, data.Utilisateurs);
}
+ ///
+ /// Sauvegarde les données dans le fichier xml.
+ ///
+ /// La liste des oeuvres à sauvegarder.
+ /// La liste des utilisateurs à sauvegarder.
public void sauvegarder(ObservableCollection o, List u)
{
var serializer = new DataContractSerializer(typeof(DataToPersist));
@@ -47,11 +65,6 @@ namespace MangaMap.Stub
Directory.CreateDirectory(FilePath);
}
- /*using (Stream s = File.Create(Path.Combine(FilePath, FileName)))
- {
- serializer.WriteObject(s, o); //Version d'enregistrement des données sans indentation.
- }*/
-
DataToPersist data = new DataToPersist();
data.Oeuvres = o;
data.Utilisateurs = u;
@@ -61,10 +74,9 @@ namespace MangaMap.Stub
{
using (XmlWriter w = XmlWriter.Create(tw, settings))
{
- serializer.WriteObject(w, data); //Version d'enregistrement des données avec indentation.
+ serializer.WriteObject(w, data); // Version d'enregistrement des données avec indentation.
}
}
}
}
-
-}
\ No newline at end of file
+}
diff --git a/MangaMap/Stub/IPersistanceManager.cs b/MangaMap/Stub/IPersistanceManager.cs
index af0689d..8ce3354 100644
--- a/MangaMap/Stub/IPersistanceManager.cs
+++ b/MangaMap/Stub/IPersistanceManager.cs
@@ -1,17 +1,17 @@
-using System;
-using System.Collections.Generic;
+using System;
+using System.Collections.Generic;
using System.Collections.ObjectModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using MangaMap.Model;
-
-namespace MangaMap.Stub
-{
- public interface IPersistanceManager
- {
- (ObservableCollection, List) chargeDonne();
-
- void sauvegarder(ObservableCollection o, List u);
- }
-}
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using MangaMap.Model;
+
+namespace MangaMap.Stub
+{
+ public interface IPersistanceManager
+ {
+ (ObservableCollection, List) chargeDonne();
+
+ void sauvegarder(ObservableCollection o, List u);
+ }
+}