Start of the doxygen documentation
continuous-integration/drone/push Build is failing Details

pull/38/head
HMatheo 2 years ago
parent fb8c42a656
commit dbd2d54d24

@ -7,8 +7,17 @@ using System.Threading.Tasks;
namespace MangaMap.Model namespace MangaMap.Model
{ {
/// <summary>
/// Représente un administrateur dans le système de gestion de listes d'anime.
/// </summary>
public class Admin : Personne public class Admin : Personne
{ {
/// <summary>
/// Initialise une nouvelle instance de la classe Admin avec les informations spécifiées.
/// </summary>
/// <param name="motDePasse">Le mot de passe de l'administrateur.</param>
/// <param name="email">L'adresse e-mail de l'administrateur.</param>
/// <param name="pseudo">Le pseudo de l'administrateur.</param>
public Admin(string motDePasse, string email, string pseudo) public Admin(string motDePasse, string email, string pseudo)
{ {
MotDePasse = motDePasse; MotDePasse = motDePasse;
@ -16,8 +25,14 @@ namespace MangaMap.Model
Pseudo = pseudo; Pseudo = pseudo;
} }
/// <summary>
/// Méthode permettant d'ajouter un anime.
/// </summary>
public void ajouterAnime() { } public void ajouterAnime() { }
/// <summary>
/// Méthode permettant de supprimer un anime.
/// </summary>
public void supprimerAnime() { } public void supprimerAnime() { }
} }
} }

@ -10,18 +10,33 @@ using MangaMap.Stub;
namespace MangaMap.Model namespace MangaMap.Model
{ {
/// <summary>
/// Classe responsable de la gestion globale de l'application de gestion de listes d'anime.
/// </summary>
public class Manager : System.ComponentModel.INotifyPropertyChanged public class Manager : System.ComponentModel.INotifyPropertyChanged
{ {
/// <summary>
/// Obtient ou définit le gestionnaire de persistance utilisé pour charger et sauvegarder les données.
/// </summary>
public IPersistanceManager Persistance { get; set; } public IPersistanceManager Persistance { get; set; }
/// <summary>
/// Obtient la liste des administrateurs de l'application.
/// </summary>
public List<Admin> Admins { get; private set; } public List<Admin> Admins { get; private set; }
/// <summary>
/// Obtient la liste des utilisateurs de l'application.
/// </summary>
public List<Utilisateur> Utilisateurs { get; private set; } public List<Utilisateur> Utilisateurs { get; private set; }
private ObservableCollection<Oeuvre> oeuvres; private ObservableCollection<Oeuvre> oeuvres;
public ObservableCollection<Oeuvre> Oeuvres /// <summary>
{ /// Obtient ou définit la collection observable des oeuvres de l'application.
/// </summary>
public ObservableCollection<Oeuvre> Oeuvres
{
get get
{ {
return oeuvres; return oeuvres;
@ -32,15 +47,28 @@ namespace MangaMap.Model
OnPropertyChanged(); OnPropertyChanged();
} }
} }
public event PropertyChangedEventHandler? PropertyChanged; public event PropertyChangedEventHandler? PropertyChanged;
void OnPropertyChanged([CallerMemberName] string propertyName = null) void OnPropertyChanged([CallerMemberName] string propertyName = null)
=> PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
/// <summary>
/// Obtient ou définit l'utilisateur actuellement connecté à l'application.
/// </summary>
public Utilisateur UtilisateurActuel { get; set; } public Utilisateur UtilisateurActuel { get; set; }
/// <summary>
/// Obtient ou définit une valeur indiquant si l'utilisateur actuel est un administrateur.
/// </summary>
public bool isAdmin { get; set; } public bool isAdmin { get; set; }
public Manager(IPersistanceManager Pers) { /// <summary>
/// Initialise une nouvelle instance de la classe Manager avec un gestionnaire de persistance spécifié.
/// </summary>
/// <param name="Pers">Le gestionnaire de persistance à utiliser.</param>
public Manager(IPersistanceManager Pers)
{
Admins = new List<Admin>(); Admins = new List<Admin>();
Utilisateurs = new List<Utilisateur>(); Utilisateurs = new List<Utilisateur>();
Oeuvres = new ObservableCollection<Oeuvre>(); Oeuvres = new ObservableCollection<Oeuvre>();
@ -50,6 +78,9 @@ namespace MangaMap.Model
Persistance = Pers; Persistance = Pers;
} }
/// <summary>
/// Initialise une nouvelle instance par défaut de la classe Manager.
/// </summary>
public Manager() public Manager()
{ {
Admins = new List<Admin>(); Admins = new List<Admin>();
@ -74,6 +105,9 @@ namespace MangaMap.Model
return utilisateurActuel; // Renvoyez l'utilisateur actuel return utilisateurActuel; // Renvoyez l'utilisateur actuel
}*/ }*/
/// <summary>
/// Charge les données de l'application à partir du gestionnaire de persistance.
/// </summary>
public void charger() public void charger()
{ {
var donne = Persistance.chargeDonne(); var donne = Persistance.chargeDonne();
@ -84,11 +118,12 @@ namespace MangaMap.Model
Utilisateurs.AddRange(donne.Item2); Utilisateurs.AddRange(donne.Item2);
} }
/// <summary>
/// Sauvegarde les données de l'application en utilisant le gestionnaire de persistance.
/// </summary>
public void sauvegarder() public void sauvegarder()
{ {
Persistance.sauvegarder(Oeuvres, Utilisateurs); Persistance.sauvegarder(Oeuvres, Utilisateurs);
} }
} }
} }

@ -10,6 +10,9 @@ using System.Runtime.CompilerServices;
namespace MangaMap.Model namespace MangaMap.Model
{ {
/// <summary>
/// Représente une oeuvre dans le système de gestion de listes d'anime.
/// </summary>
[DataContract] [DataContract]
public class Oeuvre : INotifyPropertyChanged public class Oeuvre : INotifyPropertyChanged
{ {
@ -18,17 +21,36 @@ namespace MangaMap.Model
void OnPropertyChanged([CallerMemberName] string propertyName = null) void OnPropertyChanged([CallerMemberName] string propertyName = null)
=> PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
/// <summary>
/// Obtient ou définit le nom de l'oeuvre.
/// </summary>
[DataMember] [DataMember]
public string Nom { get; private set; } public string Nom { get; private set; }
/// <summary>
/// Obtient ou définit les genres de l'oeuvre.
/// </summary>
[DataMember] [DataMember]
public List<string> Genre { get; private set; } public List<string> Genre { get; private set; }
/// <summary>
/// Obtient ou définit le type de l'oeuvre.
/// </summary>
[DataMember] [DataMember]
public string Type { get; private set; } public string Type { get; private set; }
/// <summary>
/// Obtient ou définit la description de l'oeuvre.
/// </summary>
[DataMember] [DataMember]
public string Description { get; private set; } public string Description { get; private set; }
/// <summary>
/// Obtient ou définit la note de l'oeuvre.
/// </summary>
[DataMember] [DataMember]
public int Note { public int Note
{
get => note; get => note;
set set
{ {
@ -40,11 +62,28 @@ namespace MangaMap.Model
} }
private int note; private int note;
/// <summary>
/// Obtient ou définit le nombre d'épisodes de l'oeuvre.
/// </summary>
[DataMember] [DataMember]
public int NbEpisodes { get; private set; } public int NbEpisodes { get; private set; }
/// <summary>
/// Obtient ou définit l'affiche de l'oeuvre.
/// </summary>
[DataMember] [DataMember]
public string Affiche { get; private set; } public string Affiche { get; private set; }
/// <summary>
/// Initialise une nouvelle instance de la classe Oeuvre avec les informations spécifiées.
/// </summary>
/// <param name="nom">Le nom de l'oeuvre.</param>
/// <param name="genre">Les genres de l'oeuvre.</param>
/// <param name="type">Le type de l'oeuvre.</param>
/// <param name="description">La description de l'oeuvre.</param>
/// <param name="note">La note de l'oeuvre.</param>
/// <param name="nbEpisode">Le nombre d'épisodes de l'oeuvre.</param>
/// <param name="affiche">L'affiche de l'oeuvre.</param>
public Oeuvre(string nom, List<string> genre, string type, string description, int note, int nbEpisode, string affiche) public Oeuvre(string nom, List<string> genre, string type, string description, int note, int nbEpisode, string affiche)
{ {
Nom = nom; Nom = nom;
@ -56,6 +95,14 @@ namespace MangaMap.Model
Affiche = affiche; Affiche = affiche;
} }
/// <summary>
/// Initialise une nouvelle instance de la classe Oeuvre avec les informations spécifiées.
/// </summary>
/// <param name="nom">Le nom de l'oeuvre.</param>
/// <param name="type">Le type de l'oeuvre.</param>
/// <param name="description">La description de l'oeuvre.</param>
/// <param name="nbEpisode">Le nombre d'épisodes de l'oeuvre.</param>
/// <param name="affiche">L'affiche de l'oeuvre.</param>
public Oeuvre(string nom, string type, string description, int nbEpisode, string affiche) public Oeuvre(string nom, string type, string description, int nbEpisode, string affiche)
{ {
Nom = nom; Nom = nom;
@ -65,9 +112,13 @@ namespace MangaMap.Model
Affiche = affiche; Affiche = affiche;
} }
/// <summary>
/// Méthode permettant d'ajouter un certain nombre d'épisodes à l'oeuvre.
/// </summary>
/// <param name="nb">Le nombre d'épisodes à ajouter.</param>
public void AjouterEpisode(int nb) public void AjouterEpisode(int nb)
{ {
NbEpisodes = NbEpisodes + nb; NbEpisodes = NbEpisodes + nb;
} }
} }
} }

@ -7,16 +7,35 @@ using System.Threading.Tasks;
namespace MangaMap.Model namespace MangaMap.Model
{ {
/// <summary>
/// Représente une personne dans le système de gestion de listes d'anime.
/// </summary>
[DataContract] [DataContract]
public class Personne public class Personne
{ {
/// <summary>
/// Obtient ou définit le mot de passe de la personne.
/// </summary>
[DataMember] [DataMember]
public string MotDePasse { get; set; } public string MotDePasse { get; set; }
/// <summary>
/// Obtient ou définit l'adresse e-mail de la personne.
/// </summary>
[DataMember] [DataMember]
public string Email { get; set; } public string Email { get; set; }
/// <summary>
/// Obtient ou définit le pseudo de la personne.
/// </summary>
[DataMember] [DataMember]
public string Pseudo { get; set; } public string Pseudo { get; set; }
/// <summary>
/// Modifie le mot de passe de la personne en vérifiant une confirmation.
/// </summary>
/// <param name="MotDePasse">Le nouveau mot de passe.</param>
/// <returns>True si la modification a réussi, False sinon.</returns>
public bool MofifierMotDePasse(string MotDePasse) public bool MofifierMotDePasse(string MotDePasse)
{ {
string test = ""; string test = "";
@ -31,6 +50,11 @@ namespace MangaMap.Model
return false; return false;
} }
/// <summary>
/// Modifie l'adresse e-mail de la personne en vérifiant une confirmation.
/// </summary>
/// <param name="Email">La nouvelle adresse e-mail.</param>
/// <returns>True si la modification a réussi, False sinon.</returns>
public bool MofifierEmail(string Email) public bool MofifierEmail(string Email)
{ {
string test = ""; string test = "";
@ -45,6 +69,11 @@ namespace MangaMap.Model
return false; return false;
} }
/// <summary>
/// Modifie le pseudo de la personne en vérifiant une confirmation.
/// </summary>
/// <param name="Pseudo">Le nouveau pseudo.</param>
/// <returns>True si la modification a réussi, False sinon.</returns>
public bool MofifierPseudo(string Pseudo) public bool MofifierPseudo(string Pseudo)
{ {
string test = ""; string test = "";

@ -8,26 +8,69 @@ using System.Threading.Tasks;
namespace MangaMap.Model namespace MangaMap.Model
{ {
/// <summary>
/// Représente un utilisateur de l'application de gestion de listes d'anime.
/// </summary>
[DataContract] [DataContract]
public class Utilisateur : Personne public class Utilisateur : Personne
{ {
/// <summary>
/// Obtient ou définit le nom de l'utilisateur.
/// </summary>
[DataMember] [DataMember]
public string nom { get; private set; } public string nom { get; private set; }
[DataMember]
/// <summary>
/// Obtient ou définit le prénom de l'utilisateur.
/// </summary>
[DataMember]
public string prenom { get; private set; } public string prenom { get; private set; }
[DataMember]
/// <summary>
/// Obtient ou définit l'âge de l'utilisateur.
/// </summary>
[DataMember]
public int age { get; private set; } public int age { get; private set; }
[DataMember]
/// <summary>
/// Obtient ou définit la liste des oeuvres en visionnage de l'utilisateur.
/// </summary>
[DataMember]
public ObservableCollection<Oeuvre> ListeOeuvreEnVisionnage { get; set; } public ObservableCollection<Oeuvre> ListeOeuvreEnVisionnage { get; set; }
[DataMember]
/// <summary>
/// Obtient ou définit la liste des oeuvres déjà vues par l'utilisateur.
/// </summary>
[DataMember]
public ObservableCollection<Oeuvre> ListeOeuvreDejaVu { get; set; } public ObservableCollection<Oeuvre> ListeOeuvreDejaVu { get; set; }
/// <summary>
/// Obtient ou définit la liste des oeuvres à voir ultérieurement par l'utilisateur.
/// </summary>
[DataMember] [DataMember]
public ObservableCollection<Oeuvre> ListeOeuvrePourPlusTard { get; set; } public ObservableCollection<Oeuvre> ListeOeuvrePourPlusTard { get; set; }
/// <summary>
/// Obtient ou définit la liste des oeuvres favorites de l'utilisateur.
/// </summary>
[DataMember] [DataMember]
public ObservableCollection<Oeuvre> ListeOeuvreFavorites { get; set; } public ObservableCollection<Oeuvre> ListeOeuvreFavorites { get; set; }
/// <summary>
/// Obtient ou définit le dictionnaire des notes et nombres associés par l'utilisateur.
/// </summary>
[DataMember] [DataMember]
public Dictionary<string,List<int>> notesNombres { get; set; } public Dictionary<string, List<int>> notesNombres { get; set; }
/// <summary>
/// Initialise une nouvelle instance de la classe Utilisateur avec les paramètres spécifiés.
/// </summary>
/// <param name="email">L'adresse email de l'utilisateur.</param>
/// <param name="pseudo">Le pseudo de l'utilisateur.</param>
/// <param name="mdp">Le mot de passe de l'utilisateur.</param>
/// <param name="nom">Le nom de l'utilisateur.</param>
/// <param name="prenom">Le prénom de l'utilisateur.</param>
/// <param name="age">L'âge de l'utilisateur.</param>
public Utilisateur(string email, string pseudo, string mdp, string nom, string prenom, int age) public Utilisateur(string email, string pseudo, string mdp, string nom, string prenom, int age)
{ {
Email = email; Email = email;
@ -44,7 +87,11 @@ namespace MangaMap.Model
notesNombres = new Dictionary<string, List<int>>(); notesNombres = new Dictionary<string, List<int>>();
} }
public Utilisateur() { /// <summary>
/// Initialise une nouvelle instance par défaut de la classe Utilisateur.
/// </summary>
public Utilisateur()
{
ListeOeuvreEnVisionnage = new ObservableCollection<Oeuvre>(); ListeOeuvreEnVisionnage = new ObservableCollection<Oeuvre>();
ListeOeuvreDejaVu = new ObservableCollection<Oeuvre>(); ListeOeuvreDejaVu = new ObservableCollection<Oeuvre>();
ListeOeuvrePourPlusTard = new ObservableCollection<Oeuvre>(); ListeOeuvrePourPlusTard = new ObservableCollection<Oeuvre>();
@ -52,6 +99,9 @@ namespace MangaMap.Model
notesNombres = new Dictionary<string, List<int>>(); notesNombres = new Dictionary<string, List<int>>();
} }
/// <summary>
/// Supprime l'utilisateur en réinitialisant les propriétés nom, prénom et âge.
/// </summary>
public void SupprimerUtilisateur() public void SupprimerUtilisateur()
{ {
this.nom = null; this.nom = null;
@ -59,4 +109,4 @@ namespace MangaMap.Model
this.age = 0; this.age = 0;
} }
} }
} }

@ -9,14 +9,27 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Xml; using System.Xml;
namespace MangaMap.Stub namespace MangaMap.Stub
{ {
/// <summary>
/// Implémentation de l'interface IPersistanceManager utilisant la sérialisation avec DataContract.
/// </summary>
public class DataContract : IPersistanceManager public class DataContract : IPersistanceManager
{ {
/// <summary>
/// Obtient ou définit le nom du fichier de sauvegarde.
/// </summary>
public string FileName { get; set; } = "SauvegardeDonnees.xml"; public string FileName { get; set; } = "SauvegardeDonnees.xml";
/// <summary>
/// Obtient ou définit le chemin du fichier de sauvegarde.
/// </summary>
public string FilePath { get; set; } = Path.Combine(AppDomain.CurrentDomain.BaseDirectory); public string FilePath { get; set; } = Path.Combine(AppDomain.CurrentDomain.BaseDirectory);
/// <summary>
/// Charge les données sauvegardées à partir du fichier xml.
/// </summary>
/// <returns>Un tuple contenant la liste des oeuvres et la liste des utilisateurs.</returns>
public (ObservableCollection<Oeuvre>, List<Utilisateur>) chargeDonne() public (ObservableCollection<Oeuvre>, List<Utilisateur>) chargeDonne()
{ {
var serializer = new DataContractSerializer(typeof(DataToPersist)); var serializer = new DataContractSerializer(typeof(DataToPersist));
@ -37,6 +50,11 @@ namespace MangaMap.Stub
return (data.Oeuvres, data.Utilisateurs); return (data.Oeuvres, data.Utilisateurs);
} }
/// <summary>
/// Sauvegarde les données dans le fichier xml.
/// </summary>
/// <param name="o">La liste des oeuvres à sauvegarder.</param>
/// <param name="u">La liste des utilisateurs à sauvegarder.</param>
public void sauvegarder(ObservableCollection<Oeuvre> o, List<Utilisateur> u) public void sauvegarder(ObservableCollection<Oeuvre> o, List<Utilisateur> u)
{ {
var serializer = new DataContractSerializer(typeof(DataToPersist)); var serializer = new DataContractSerializer(typeof(DataToPersist));
@ -47,11 +65,6 @@ namespace MangaMap.Stub
Directory.CreateDirectory(FilePath); 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(); DataToPersist data = new DataToPersist();
data.Oeuvres = o; data.Oeuvres = o;
data.Utilisateurs = u; data.Utilisateurs = u;
@ -61,10 +74,9 @@ namespace MangaMap.Stub
{ {
using (XmlWriter w = XmlWriter.Create(tw, settings)) 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.
} }
} }
} }
} }
}
}

@ -1,17 +1,17 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using MangaMap.Model; using MangaMap.Model;
namespace MangaMap.Stub namespace MangaMap.Stub
{ {
public interface IPersistanceManager public interface IPersistanceManager
{ {
(ObservableCollection<Oeuvre>, List<Utilisateur>) chargeDonne(); (ObservableCollection<Oeuvre>, List<Utilisateur>) chargeDonne();
void sauvegarder(ObservableCollection<Oeuvre> o, List<Utilisateur> u); void sauvegarder(ObservableCollection<Oeuvre> o, List<Utilisateur> u);
} }
} }

Loading…
Cancel
Save