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
{
/// <summary>
/// Représente un administrateur dans le système de gestion de listes d'anime.
/// </summary>
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)
{
MotDePasse = motDePasse;
@ -16,8 +25,14 @@ namespace MangaMap.Model
Pseudo = pseudo;
}
/// <summary>
/// Méthode permettant d'ajouter un anime.
/// </summary>
public void ajouterAnime() { }
/// <summary>
/// Méthode permettant de supprimer un anime.
/// </summary>
public void supprimerAnime() { }
}
}

@ -10,16 +10,31 @@ using MangaMap.Stub;
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
{
/// <summary>
/// Obtient ou définit le gestionnaire de persistance utilisé pour charger et sauvegarder les données.
/// </summary>
public IPersistanceManager Persistance { get; set; }
/// <summary>
/// Obtient la liste des administrateurs de l'application.
/// </summary>
public List<Admin> Admins { get; private set; }
/// <summary>
/// Obtient la liste des utilisateurs de l'application.
/// </summary>
public List<Utilisateur> Utilisateurs { get; private set; }
private ObservableCollection<Oeuvre> oeuvres;
/// <summary>
/// Obtient ou définit la collection observable des oeuvres de l'application.
/// </summary>
public ObservableCollection<Oeuvre> Oeuvres
{
get
@ -32,15 +47,28 @@ namespace MangaMap.Model
OnPropertyChanged();
}
}
public event PropertyChangedEventHandler? PropertyChanged;
void OnPropertyChanged([CallerMemberName] string propertyName = null)
=> PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
/// <summary>
/// Obtient ou définit l'utilisateur actuellement connecté à l'application.
/// </summary>
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 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>();
Utilisateurs = new List<Utilisateur>();
Oeuvres = new ObservableCollection<Oeuvre>();
@ -50,6 +78,9 @@ namespace MangaMap.Model
Persistance = Pers;
}
/// <summary>
/// Initialise une nouvelle instance par défaut de la classe Manager.
/// </summary>
public Manager()
{
Admins = new List<Admin>();
@ -74,6 +105,9 @@ namespace MangaMap.Model
return utilisateurActuel; // Renvoyez l'utilisateur actuel
}*/
/// <summary>
/// Charge les données de l'application à partir du gestionnaire de persistance.
/// </summary>
public void charger()
{
var donne = Persistance.chargeDonne();
@ -84,8 +118,9 @@ namespace MangaMap.Model
Utilisateurs.AddRange(donne.Item2);
}
/// <summary>
/// Sauvegarde les données de l'application en utilisant le gestionnaire de persistance.
/// </summary>
public void sauvegarder()
{
Persistance.sauvegarder(Oeuvres, Utilisateurs);

@ -10,6 +10,9 @@ using System.Runtime.CompilerServices;
namespace MangaMap.Model
{
/// <summary>
/// Représente une oeuvre dans le système de gestion de listes d'anime.
/// </summary>
[DataContract]
public class Oeuvre : INotifyPropertyChanged
{
@ -18,17 +21,36 @@ namespace MangaMap.Model
void OnPropertyChanged([CallerMemberName] string propertyName = null)
=> PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
/// <summary>
/// Obtient ou définit le nom de l'oeuvre.
/// </summary>
[DataMember]
public string Nom { get; private set; }
/// <summary>
/// Obtient ou définit les genres de l'oeuvre.
/// </summary>
[DataMember]
public List<string> Genre { get; private set; }
/// <summary>
/// Obtient ou définit le type de l'oeuvre.
/// </summary>
[DataMember]
public string Type { get; private set; }
/// <summary>
/// Obtient ou définit la description de l'oeuvre.
/// </summary>
[DataMember]
public string Description { get; private set; }
/// <summary>
/// Obtient ou définit la note de l'oeuvre.
/// </summary>
[DataMember]
public int Note {
public int Note
{
get => note;
set
{
@ -40,11 +62,28 @@ namespace MangaMap.Model
}
private int note;
/// <summary>
/// Obtient ou définit le nombre d'épisodes de l'oeuvre.
/// </summary>
[DataMember]
public int NbEpisodes { get; private set; }
/// <summary>
/// Obtient ou définit l'affiche de l'oeuvre.
/// </summary>
[DataMember]
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)
{
Nom = nom;
@ -56,6 +95,14 @@ namespace MangaMap.Model
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)
{
Nom = nom;
@ -65,6 +112,10 @@ namespace MangaMap.Model
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)
{
NbEpisodes = NbEpisodes + nb;

@ -7,16 +7,35 @@ using System.Threading.Tasks;
namespace MangaMap.Model
{
/// <summary>
/// Représente une personne dans le système de gestion de listes d'anime.
/// </summary>
[DataContract]
public class Personne
{
/// <summary>
/// Obtient ou définit le mot de passe de la personne.
/// </summary>
[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]
public string Email { get; set; }
public string Email { get; set; }
/// <summary>
/// Obtient ou définit le pseudo de la personne.
/// </summary>
[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)
{
string test = "";
@ -31,6 +50,11 @@ namespace MangaMap.Model
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)
{
string test = "";
@ -45,6 +69,11 @@ namespace MangaMap.Model
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)
{
string test = "";

@ -8,26 +8,69 @@ using System.Threading.Tasks;
namespace MangaMap.Model
{
/// <summary>
/// Représente un utilisateur de l'application de gestion de listes d'anime.
/// </summary>
[DataContract]
public class Utilisateur : Personne
{
/// <summary>
/// Obtient ou définit le nom de l'utilisateur.
/// </summary>
[DataMember]
public string nom { get; private set; }
/// <summary>
/// Obtient ou définit le prénom de l'utilisateur.
/// </summary>
[DataMember]
public string prenom { get; private set; }
/// <summary>
/// Obtient ou définit l'âge de l'utilisateur.
/// </summary>
[DataMember]
public int age { get; private set; }
/// <summary>
/// Obtient ou définit la liste des oeuvres en visionnage de l'utilisateur.
/// </summary>
[DataMember]
public ObservableCollection<Oeuvre> ListeOeuvreEnVisionnage { get; set; }
/// <summary>
/// Obtient ou définit la liste des oeuvres déjà vues par l'utilisateur.
/// </summary>
[DataMember]
public ObservableCollection<Oeuvre> ListeOeuvreDejaVu { get; set; }
/// <summary>
/// Obtient ou définit la liste des oeuvres à voir ultérieurement par l'utilisateur.
/// </summary>
[DataMember]
public ObservableCollection<Oeuvre> ListeOeuvrePourPlusTard { get; set; }
/// <summary>
/// Obtient ou définit la liste des oeuvres favorites de l'utilisateur.
/// </summary>
[DataMember]
public ObservableCollection<Oeuvre> ListeOeuvreFavorites { get; set; }
/// <summary>
/// Obtient ou définit le dictionnaire des notes et nombres associés par l'utilisateur.
/// </summary>
[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)
{
Email = email;
@ -44,7 +87,11 @@ namespace MangaMap.Model
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>();
ListeOeuvreDejaVu = new ObservableCollection<Oeuvre>();
ListeOeuvrePourPlusTard = new ObservableCollection<Oeuvre>();
@ -52,6 +99,9 @@ namespace MangaMap.Model
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()
{
this.nom = null;

@ -9,14 +9,27 @@ using System.Text;
using System.Threading.Tasks;
using System.Xml;
namespace MangaMap.Stub
{
/// <summary>
/// Implémentation de l'interface IPersistanceManager utilisant la sérialisation avec DataContract.
/// </summary>
public class DataContract : IPersistanceManager
{
/// <summary>
/// Obtient ou définit le nom du fichier de sauvegarde.
/// </summary>
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);
/// <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()
{
var serializer = new DataContractSerializer(typeof(DataToPersist));
@ -37,6 +50,11 @@ namespace MangaMap.Stub
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)
{
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.
}
}
}
}
}
Loading…
Cancel
Save