From 83875a94e49bc2da8fb2131aa8de1b49e00f7431 Mon Sep 17 00:00:00 2001 From: Louis LABORIE Date: Mon, 5 Jun 2023 16:09:12 +0200 Subject: [PATCH 1/8] Comment Album class for Doxygen --- Sources/Model/Album.cs | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/Sources/Model/Album.cs b/Sources/Model/Album.cs index 15cdca4..9daffcf 100644 --- a/Sources/Model/Album.cs +++ b/Sources/Model/Album.cs @@ -96,6 +96,9 @@ namespace Model private ObservableCollection infoTitles = new ObservableCollection(); + /// + /// Constructeur de la classe album + /// public Album(string name, string imageURL, Artist artist, string description, string information) { id = nbAlbum; @@ -106,22 +109,36 @@ namespace Model Description = description; Information = information; } - + + /// + /// Constructeur par défaut de la classe album + /// public Album() { Artist = new Artist(Manager.DEFAULT_NAME); } - + /// + /// Permet d'ajouter l'InfoTitle passé en paramètre à la liste + /// + /// public void AddTitle(InfoTitle title) { infoTitles.Add(title); } - + /// + /// Permet de supprimer l'InfoTitle passé en paramètre si il est présent dans la liste + /// + /// public void RemoveTitle(InfoTitle title) { infoTitles.Remove(title); } + /// + /// Fonction qui permet de déterminer si deux objets Album sont égaux + /// + /// + /// Un booléen indiquant si l'objet est égal public override bool Equals(object obj) { if (obj is null) return false; @@ -129,12 +146,19 @@ namespace Model if (obj is Album album && Name == album.Name) return true; else return false; } - + /// + /// Permet de déterminer le hash d'un objet Album + /// + /// hash de l'attribut ImageURL public override int GetHashCode() { return ImageURL.GetHashCode(); } + /// + /// Permet de convertir un objet Album en string + /// + /// une nouvelle chaîne caractères contenant le nom de l'album et le nom de l'artiste public override string ToString() { return $"Name : {Name}, Artist : {Artist}"; From 631589d891cf8e887c7c91abd60f85a32762ad71 Mon Sep 17 00:00:00 2001 From: Louis LABORIE Date: Mon, 5 Jun 2023 16:35:19 +0200 Subject: [PATCH 2/8] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'.drone.yml'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .drone.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.drone.yml b/.drone.yml index 7c67229..3319407 100644 --- a/.drone.yml +++ b/.drone.yml @@ -54,6 +54,7 @@ steps: when: branch: - master + - dev-doxygen event: - push - pull_request From 6aefde54da57bca1b439993d9b81ea052a35c7b8 Mon Sep 17 00:00:00 2001 From: Louis LABORIE Date: Wed, 7 Jun 2023 18:35:23 +0200 Subject: [PATCH 3/8] Test Doxygen --- Sources/Model/Album.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Sources/Model/Album.cs b/Sources/Model/Album.cs index 9daffcf..0a03713 100644 --- a/Sources/Model/Album.cs +++ b/Sources/Model/Album.cs @@ -2,7 +2,11 @@ using System.Collections.ObjectModel; namespace Model + { + /// + /// Classe Album + /// public class Album { private static long nbAlbum = 0; From 52079cdaf08f9c00a90b8219cf740f1d6f23ab5a Mon Sep 17 00:00:00 2001 From: Corentin LEMAIRE Date: Fri, 9 Jun 2023 14:16:04 +0200 Subject: [PATCH 4/8] Fix no documentation generated --- .drone.yml | 2 -- Documentation/doxygen/Doxyfile | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.drone.yml b/.drone.yml index 3319407..ac474fb 100644 --- a/.drone.yml +++ b/.drone.yml @@ -49,8 +49,6 @@ steps: path: /docs commands: - /entrypoint.sh - environment: - NODOXYGEN: true when: branch: - master diff --git a/Documentation/doxygen/Doxyfile b/Documentation/doxygen/Doxyfile index 319cdef..1608c88 100644 --- a/Documentation/doxygen/Doxyfile +++ b/Documentation/doxygen/Doxyfile @@ -226,7 +226,7 @@ HTML_HEADER = HTML_FOOTER = HTML_STYLESHEET = HTML_EXTRA_STYLESHEET = -HTML_EXTRA_FILES = images/CodeFirst.png images/clubinfo.png +HTML_EXTRA_FILES = HTML_COLORSTYLE_HUE = 215 HTML_COLORSTYLE_SAT = 45 HTML_COLORSTYLE_GAMMA = 240 From 5921c430badc609d16e85ba006de6616e8d89931 Mon Sep 17 00:00:00 2001 From: Corentin LEMAIRE Date: Fri, 9 Jun 2023 14:58:13 +0200 Subject: [PATCH 5/8] Add some comments --- Sources/Model/Album.cs | 27 ++++++++++++++++++--------- Sources/Model/Artist.cs | 17 +++++++++++++++++ Sources/Model/CustomTitle.cs | 25 +++++++++++++++++++++++-- Sources/Model/Genre.cs | 3 +++ Sources/Model/InfoTitle.cs | 19 ++++++++++++++++++- Sources/Model/Playlist.cs | 19 ++++++++++++++++++- Sources/Model/Title.cs | 18 +++++++++++++++++- 7 files changed, 114 insertions(+), 14 deletions(-) diff --git a/Sources/Model/Album.cs b/Sources/Model/Album.cs index 0a03713..e3ccef9 100644 --- a/Sources/Model/Album.cs +++ b/Sources/Model/Album.cs @@ -7,6 +7,7 @@ namespace Model /// /// Classe Album /// + public class Album { private static long nbAlbum = 0; @@ -100,9 +101,14 @@ namespace Model private ObservableCollection infoTitles = new ObservableCollection(); - /// - /// Constructeur de la classe album - /// + /** + * \brief Constructeur de la classe album + * \param[in] name Nom de l'album + * \param[in] imageURL Chemin d'accès de l'image d'un album + * \param[in] artist Artiste de l'album + * \param[in] description Description de l'album + * \param[in] information Informations complémentaires sur un album + */ public Album(string name, string imageURL, Artist artist, string description, string information) { id = nbAlbum; @@ -121,18 +127,20 @@ namespace Model { Artist = new Artist(Manager.DEFAULT_NAME); } + /// /// Permet d'ajouter l'InfoTitle passé en paramètre à la liste /// - /// + /// Titre à rajouter à l'album public void AddTitle(InfoTitle title) { infoTitles.Add(title); } + /// /// Permet de supprimer l'InfoTitle passé en paramètre si il est présent dans la liste /// - /// + /// Titre à supprimer de l'album public void RemoveTitle(InfoTitle title) { infoTitles.Remove(title); @@ -141,7 +149,7 @@ namespace Model /// /// Fonction qui permet de déterminer si deux objets Album sont égaux /// - /// + /// Objet comparé à l'album actuel /// Un booléen indiquant si l'objet est égal public override bool Equals(object obj) { @@ -150,19 +158,20 @@ namespace Model if (obj is Album album && Name == album.Name) return true; else return false; } + /// /// Permet de déterminer le hash d'un objet Album /// - /// hash de l'attribut ImageURL + /// Hash de l'attribut Name public override int GetHashCode() { - return ImageURL.GetHashCode(); + return Name.GetHashCode(); } /// /// Permet de convertir un objet Album en string /// - /// une nouvelle chaîne caractères contenant le nom de l'album et le nom de l'artiste + /// Une nouvelle chaîne caractères contenant le nom de l'Album et le nom de l'Artist public override string ToString() { return $"Name : {Name}, Artist : {Artist}"; diff --git a/Sources/Model/Artist.cs b/Sources/Model/Artist.cs index a97b7fe..c46d630 100644 --- a/Sources/Model/Artist.cs +++ b/Sources/Model/Artist.cs @@ -5,6 +5,10 @@ namespace Model; public class Artist { + /// + /// Classe Artist + /// + public string Name { get => name; @@ -30,6 +34,11 @@ public class Artist } + /// + /// Fonction qui permet de déterminer si deux objets Artist sont égaux + /// + /// + /// Un booléen indiquant si l'objet est égal public override bool Equals(object obj) { if(obj == null) return false; @@ -38,11 +47,19 @@ public class Artist else return false; } + /// + /// Permet de déterminer le hash d'un objet Artist + /// + /// Hash de l'attribut Name public override int GetHashCode() { return Name.GetHashCode(); } + /// + /// Permet de convertir un objet Artist en string + /// + /// Une nouvelle chaîne caractères contenant le nom de l'Artist public override string ToString() { return $"{Name}"; diff --git a/Sources/Model/CustomTitle.cs b/Sources/Model/CustomTitle.cs index a940115..c33923a 100644 --- a/Sources/Model/CustomTitle.cs +++ b/Sources/Model/CustomTitle.cs @@ -6,7 +6,10 @@ namespace Model; public class CustomTitle : Title, INotifyPropertyChanged { - + /// + /// Classe CustomTitle + /// + public string Path { get => path; @@ -75,9 +78,19 @@ public class CustomTitle : Title, INotifyPropertyChanged public CustomTitle() : base(Manager.DEFAULT_NAME, Manager.DEFAULT_URL, Manager.DEFAULT_DESC) { } + /// + /// Fonction qui permet de déterminer si deux objets CustomTitle sont égaux selon leurs chemin d'accès + /// + /// + /// Un booléen indiquant si les chemins d'accès sont égaux public bool Equals(CustomTitle other) => Path.Equals(other?.Path); + /// + /// Fonction qui permet de déterminer si deux objets CustomTitle sont égaux + /// + /// + /// Un booléen indiquant si l'objet est égal public override bool Equals(object obj) { if (ReferenceEquals(obj, null)) return false; @@ -86,11 +99,19 @@ public class CustomTitle : Title, INotifyPropertyChanged return Equals(obj as CustomTitle); } + /// + /// Permet de déterminer le hash d'un objet CustomTitle + /// + /// Hash de l'attribut Path public override int GetHashCode() { - return ImageURL.GetHashCode(); + return Path.GetHashCode(); } + /// + /// Permet de convertir un objet CustomTitle en string + /// + /// Une nouvelle chaîne caractères contenant le nom du CustomTitle et le chemin d'accès public override string ToString() { return $"Name : {Name}, Path : {Path}"; diff --git a/Sources/Model/Genre.cs b/Sources/Model/Genre.cs index f0aec92..d2be539 100644 --- a/Sources/Model/Genre.cs +++ b/Sources/Model/Genre.cs @@ -2,6 +2,9 @@ public enum Genre { + /// + /// Enum des diffénres genres référencés. + /// HIP_HOP, POP, ROCK, ELECTRO, CLASSIQUE, JAZZ, VARIETE_FRANCAISE, VARIETE_INTERNATIONALE, REGGAE, RAP, RNB, DISCO, BLUES, COUNTRY, FUNK, GOSPEL, METAL, K_POP } diff --git a/Sources/Model/InfoTitle.cs b/Sources/Model/InfoTitle.cs index fd4ea14..c3caff4 100644 --- a/Sources/Model/InfoTitle.cs +++ b/Sources/Model/InfoTitle.cs @@ -5,6 +5,10 @@ namespace Model; public class InfoTitle : Title { + /// + /// Classe InfoTitle + /// + public string Description { get => description; @@ -67,6 +71,11 @@ public class InfoTitle : Title } } + /// + /// Fonction qui permet de déterminer si deux objets InfoTitle sont égaux + /// + /// + /// Un booléen indiquant si l'objet est égal public override bool Equals(object obj) { if (obj is null) return false; @@ -75,11 +84,19 @@ public class InfoTitle : Title else return false; } + /// + /// Permet de déterminer le hash d'un objet InfoTitle + /// + /// Hash de l'attribut Name public override int GetHashCode() { - return ImageURL.GetHashCode(); + return Name.GetHashCode(); } + /// + /// Permet de convertir un objet InfoTitle en string + /// + /// Une nouvelle chaîne caractères contenant le nom de l'InfoTitle et le chemin d'accès à l'image public override string ToString() { return $"Name : {Name}, ImageUrl : {ImageURL}"; diff --git a/Sources/Model/Playlist.cs b/Sources/Model/Playlist.cs index 1aa251b..7f2a74b 100644 --- a/Sources/Model/Playlist.cs +++ b/Sources/Model/Playlist.cs @@ -8,6 +8,10 @@ namespace Model; public class Playlist : INotifyPropertyChanged { + /// + /// Classe Playlist + /// + public event PropertyChangedEventHandler PropertyChanged; public string Name @@ -214,6 +218,11 @@ public class Playlist : INotifyPropertyChanged } + /// + /// Fonction qui permet de déterminer si deux objets Playlist sont égaux + /// + /// + /// Un booléen indiquant si l'objet est égal public override bool Equals(object obj) { if (obj is null) return false; @@ -222,11 +231,19 @@ public class Playlist : INotifyPropertyChanged else return false; } + /// + /// Permet de déterminer le hash d'un objet Playlist + /// + /// Hash de l'attribut Name public override int GetHashCode() { - return ImageURL.GetHashCode(); + return Name.GetHashCode(); } + /// + /// Permet de convertir un objet Playlist en string + /// + /// Une nouvelle chaîne caractères contenant le nom de la Playlist public override string ToString() { return $"Name : {Name}"; diff --git a/Sources/Model/Title.cs b/Sources/Model/Title.cs index bd977e6..673e60b 100644 --- a/Sources/Model/Title.cs +++ b/Sources/Model/Title.cs @@ -7,6 +7,9 @@ namespace Model; public class Title { + /// + /// Classe Title + /// public event PropertyChangedEventHandler PropertyChanged; @@ -71,6 +74,11 @@ public class Title Information = informations; } + /// + /// Fonction qui permet de déterminer si deux objets Title sont égaux + /// + /// + /// Un booléen indiquant si l'objet est égal public override bool Equals(object obj) { if (obj is null) return false; @@ -79,11 +87,19 @@ public class Title else return false; } + /// + /// Permet de déterminer le hash d'un objet Title + /// + /// Hash de l'attribut Name public override int GetHashCode() { - return ImageURL.GetHashCode(); + return Name.GetHashCode(); } + /// + /// Permet de convertir un objet Title en string + /// + /// Une nouvelle chaîne caractères contenant le nom du Title public override string ToString() { return $"Name : {Name}"; From f18942014cd9192dac82c2b50815fa55928ece3d Mon Sep 17 00:00:00 2001 From: Corentin LEMAIRE Date: Fri, 9 Jun 2023 18:01:15 +0200 Subject: [PATCH 6/8] Finish commenting basic class --- Sources/Model/Album.cs | 18 +- Sources/Model/Artist.cs | 7 + Sources/Model/CustomTitle.cs | 10 ++ Sources/Model/IDataManager.cs | 298 ++++++++++++++++++++++++++++++++++ Sources/Model/InfoTitle.cs | 21 +++ Sources/Model/Manager.cs | 124 +++++++++++++- Sources/Model/Playlist.cs | 58 +++++++ Sources/Model/Title.cs | 10 ++ 8 files changed, 536 insertions(+), 10 deletions(-) diff --git a/Sources/Model/Album.cs b/Sources/Model/Album.cs index e3ccef9..f7e29c2 100644 --- a/Sources/Model/Album.cs +++ b/Sources/Model/Album.cs @@ -101,14 +101,14 @@ namespace Model private ObservableCollection infoTitles = new ObservableCollection(); - /** - * \brief Constructeur de la classe album - * \param[in] name Nom de l'album - * \param[in] imageURL Chemin d'accès de l'image d'un album - * \param[in] artist Artiste de l'album - * \param[in] description Description de l'album - * \param[in] information Informations complémentaires sur un album - */ + /// + /// Constructeur de la classe Album + /// + /// Nom de l'Album + /// Chemin d'accès de l'image de l'Album + /// Artiste de l'Album + /// Description de l'Album + /// Informations complémentaires sur un Album public Album(string name, string imageURL, Artist artist, string description, string information) { id = nbAlbum; @@ -121,7 +121,7 @@ namespace Model } /// - /// Constructeur par défaut de la classe album + /// Constructeur par défaut de la classe Album /// public Album() { diff --git a/Sources/Model/Artist.cs b/Sources/Model/Artist.cs index c46d630..84b7f6f 100644 --- a/Sources/Model/Artist.cs +++ b/Sources/Model/Artist.cs @@ -24,11 +24,18 @@ public class Artist private string name = Manager.DEFAULT_NAME; + /// + /// Constructeur de la classe Artist + /// + /// Nom de l'artiste public Artist(string name) { Name = name; } + /// + /// Constructeur par défaut de la classe Artist + /// public Artist() { diff --git a/Sources/Model/CustomTitle.cs b/Sources/Model/CustomTitle.cs index c33923a..23c433f 100644 --- a/Sources/Model/CustomTitle.cs +++ b/Sources/Model/CustomTitle.cs @@ -71,11 +71,21 @@ public class CustomTitle : Title, INotifyPropertyChanged private bool isNewPlaylistMenuVisible = false; + /// + /// Constructeur de la classe Album + /// + /// Nom du CustomTitle + /// Chemin d'accès de l'image du CustomTitle + /// Informations sur un CustomTitle + /// Chemin d'accès du CustomTitle public CustomTitle(string name, string imageURL, string information, string path) : base(name, imageURL, information) { Path = path; } + /// + /// Constructeur par défaut de la classe CustomTitle + /// public CustomTitle() : base(Manager.DEFAULT_NAME, Manager.DEFAULT_URL, Manager.DEFAULT_DESC) { } /// diff --git a/Sources/Model/IDataManager.cs b/Sources/Model/IDataManager.cs index 0d6e647..d64a9d8 100644 --- a/Sources/Model/IDataManager.cs +++ b/Sources/Model/IDataManager.cs @@ -5,119 +5,417 @@ namespace Model; public interface IDataManager { // Create + + /// + /// Permet d'ajouter un objet Album à l'application + /// + /// Album à ajouter void AddAlbum(Album album); + /// + /// Permet d'ajouter des objets Album à l'application + /// + /// Liste d'Album à ajouter void AddAlbums(List albumsList); + /// + /// Permet d'ajouter un objet Artist à l'application + /// + /// Artist à ajouter void AddArtist(Artist artist); + /// + /// Permet d'ajouter des objets Artist à l'application + /// + /// Liste d'Artist à ajouter void AddArtists(List artistsList); + /// + /// Permet d'ajouter un objet Playlist à l'application + /// + /// Playlist à ajouter void AddPlaylist(Playlist playlist); + /// + /// Permet d'ajouter des objets Playlist à l'application + /// + /// Liste de Playlist à ajouter void AddPlaylists(List playlistsList); + /// + /// Permet d'ajouter un objet CustomTitle à l'application + /// + /// CustomTitle à ajouter void AddCustomTitle(CustomTitle title); + /// + /// Permet d'ajouter des objets CustomTitle à l'application + /// + /// Liste de CustomTitle à ajouter void AddCustomTitles(List customTitlesList); + /// + /// Permet d'ajouter un objet InfoTitle à l'application + /// + /// InfoTitle à ajouter void AddInfoTitle(InfoTitle title); + /// + /// Permet d'ajouter des objets InfoTitle à l'application + /// + /// Liste d'InfoTitle à ajouter void AddInfoTitles(List infoTitlesList); + + + // Read + + /// + /// Permet d'obtenir une liste d'objets CustomTitle + /// + /// Retourne une liste d'objets CustomTitle ObservableCollection GetCustomTitles(); + /// + /// Permet d'obtenir un objet CustomTitle à partir de son chemin d'accès + /// + /// Chemin d'accès de l'objet CustomTitle + /// Retourne l'objet CustomTitle avec un chemin d'accès équivalent à celui donné en paramètre CustomTitle GetCustomTitleByPath(string custom); + /// + /// Permet d'obtenir une liste d'objets InfoTitle + /// + /// Retourne une liste d'objets InfoTitle ObservableCollection GetInfoTitles(); + /// + /// Permet d'obtenir un objet InfoTitle à partir de son nom + /// + /// Nom de l'objet InfoTitle + /// Retourne l'objet InfoTitle avec un nom équivalent à celui donné en paramètre InfoTitle GetInfoTitleByName(string name); + /// + /// Permet d'obtenir une liste d'objets Album + /// + /// Retourne une liste d'objets Album ObservableCollection GetAlbums(); + /// + /// Permet d'obtenir un objet Album à partir de son nom + /// + /// Nom de l'objet Album + /// Retourne l'objet Album avec un nom équivalent à celui donné en paramètre Album GetAlbumByName(string name); + /// + /// Permet d'obtenir un objet Album à partir de son ID + /// + /// ID de l'objet Album + /// Retourne l'objet Album avec un ID équivalent à celui donné en paramètre Album GetAlbumById(long id); + /// + /// Permet d'obtenir une liste d'objets Artist + /// + /// Retourne une liste d'objets Artist List GetArtists(); + /// + /// Permet d'obtenir un objet Artist à partir de son nom + /// + /// Nom de l'objet Artist + /// Retourne l'objet Artist avec un nom équivalent à celui donné en paramètre Artist GetArtistByName(string name); + /// + /// Permet d'obtenir une liste d'objets Playlist + /// + /// Retourne une liste d'objets Playlist ObservableCollection GetPlaylists(); + /// + /// Permet d'obtenir un objet Playlist à partir de son nom + /// + /// Nom de l'objet Playlist + /// Retourne l'objet Playlist avec un nom équivalent à celui donné en paramètre Playlist GetPlaylistByName(string name); + + // Update + + /// + /// Modifie un objet CustomTitle avec les informations données en paramètre + /// + /// CustomTitle à modifier + /// Nom de l'objet CustomTitle + /// Chemin d'accès de l'image de l'objet CustomTitle + /// Informations de l'objet CustomTitle + /// Chemin d'accès de l'objet CustomTitle void UpdateCustomTitle(CustomTitle title, string name, string url, string info, string path); + /// + /// Modifie un objet CustomTitle avec les informations données en paramètre + /// + /// Chemin d'accès du CustomTitle à modifier + /// Nom de l'objet CustomTitle + /// Chemin d'accès de l'image de l'objet CustomTitle + /// Informations de l'objet CustomTitle + /// Chemin d'accès de l'objet CustomTitle void UpdateCustomTitleByPath(string path, string name, string newUrl, string info, string newPath); + /// + /// Modifie un objet InfoTitle avec les informations données en paramètre + /// + /// InfoTitle à modifier + /// Nom de l'objet InfoTitle + /// Chemin d'accès de l'image de l'objet InfoTitle + /// Informations de l'objet InfoTitle + /// Artist de l'objet InfoTitle + /// Description de l'objet InfoTitle + /// Genre de l'objet InfoTitle void UpdateInfoTitle(InfoTitle title, string name, string url, string info, Artist artist, string description, Genre genre); + /// + /// Modifie un objet InfoTitle avec les informations données en paramètre + /// + /// Nom de l'objet InfoTitle à modifier + /// Chemin d'accès de l'image de l'objet InfoTitle + /// Informations de l'objet InfoTitle + /// Artist de l'objet InfoTitle + /// Description de l'objet InfoTitle + /// Genre de l'objet InfoTitle void UpdateInfoTitleByName(string name, string newUrl, string info, Artist artist, string description, Genre genre); + /// + /// Modifie un objet Album avec les informations données en paramètre + /// + /// Album à modifier + /// Nom de l'objet Album + /// Chemin d'accès de l'image de l'objet Album + /// Artist de l'objet Album + /// Description de l'objet Album + /// Informations de l'objet Album void UpdateAlbum(Album album, string name, string url, Artist artist, string description, string info); + /// + /// Modifie un objet Album avec les informations données en paramètre + /// + /// Nom de l'objet Album à modifier + /// Chemin d'accès de l'image de l'objet Album + /// Artist de l'objet Album + /// Description de l'objet Album + /// Informations de l'objet Album void UpdateAlbumByName(string name, string newUrl, Artist artist, string description, string info); + /// + /// Modifie un objet Album avec les informations données en paramètre + /// + /// Album à modifier + /// Nom de l'objet Album + /// Chemin d'accès de l'image de l'objet Album + /// Nom de l'artiste de l'objet Album + /// Description de l'objet Album + /// Informations de l'objet Album void UpdateAlbumByArtistName(Album album, string name, string url, string artist, string description, string info); + /// + /// Modifie un objet Album avec les informations données en paramètre + /// + /// Nom de l'objet Album à modifier + /// Chemin d'accès de l'image de l'objet Album + /// Nom de l'artiste de l'objet Album + /// Description de l'objet Album + /// Informations de l'objet Album void UpdateAlbumByNameByArtistName(string name, string newUrl, string artist, string description, string info); + /// + /// Modifie un objet Playlist avec les informations données en paramètre + /// + /// Playlist à modifier + /// Nom de l'objet Playlist + /// Description de l'objet Playlist + /// Chemin d'accès de l'image de l'objet Playlist void UpdatePlaylist(Playlist playlist, string name, string description, string url); + /// + /// Modifie un objet Playlist avec les informations données en paramètre + /// + /// Nom de l'objet Playlist à modifier + /// Description de l'objet Playlist + /// Chemin d'accès de l'image de l'objet Playlist void UpdatePlaylistByName(string name, string description, string newUrl); + /// + /// Modifie un objet Artist avec les informations données en paramètre + /// + /// Artiste à modifier + /// Nom de l'objet Artist void UpdateArtist(Artist artist, string name); + /// + /// Modifie un objet Artist avec les informations données en paramètre + /// + /// Nom de l'objet Artist à modifier + /// Nouveau nom de l'objet Artist void UpdateArtistByName(string name, string newName); + + + + // Delete + + /// + /// Permet de retirer un objet Album de l'application + /// + /// Album à retirer void RemoveAlbum(Album album); + /// + /// Permet de retirer des objets Album de l'application + /// + /// Liste des objets Album à retirer de l'application void RemoveAlbums(List albumsList); + /// + /// Permet de retirer un objet Artist de l'application + /// + /// Artist à retirer void RemoveArtist(Artist artist); + /// + /// Permet de retirer des objets Artist de l'application + /// + /// Liste des objets Artist à retirer de l'application void RemoveArtists(List artistsList); + /// + /// Permet de retirer un objet Playlist de l'application + /// + /// Playlist à retirer void RemovePlaylist(Playlist playlist); + /// + /// Permet de retirer des objets Playlist de l'application + /// + /// Liste des objets Playlist à retirer de l'application void RemovePlaylists(List playlistsList); + /// + /// Permet de retirer un objet CustomTitle de l'application + /// + /// CustomTitle à retirer void RemoveCustomTitle(CustomTitle title); + /// + /// Permet de retirer des objets CustomTitle de l'application + /// + /// Liste des objets CustomTitle à retirer de l'application void RemoveCustomTitles(List customTitlesList); + /// + /// Permet de retirer un objet InfoTitle de l'application + /// + /// InfoTitle à retirer void RemoveInfoTitle(InfoTitle title); + /// + /// Permet de retirer des objets InfoTitle de l'application + /// + /// Liste des objets InfoTitle à retirer de l'application void RemoveInfoTitles(List infoTitlesList); + + // Serialization + + /// + /// Permet de charger les données + /// void LoadSerialization(); + /// + /// Permet de sauvegarder l'état de l'application + /// void SaveSerialization(); + + + // Exists + + /// + /// Permet de savoir si un objet Playlist appartient ou non à l'application + /// + /// Playlist à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon bool ExistsPlaylist(Playlist playlist); + /// + /// Permet de savoir si un objet Playlist appartient ou non à l'application selon son nom + /// + /// Nom de l'objet Playlist à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon bool ExistsPlaylistByName(string name); + /// + /// Permet de savoir si un objet Album appartient ou non à l'application + /// + /// Album à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon bool ExistsAlbum(Album album); + /// + /// Permet de savoir si un objet Album appartient ou non à l'application selon son nom + /// + /// Nom de l'objet Album à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon bool ExistsAlbumByName(string name); + /// + /// Permet de savoir si un objet Artist appartient ou non à l'application + /// + /// Artist à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon bool ExistsArtist(Artist artist); + /// + /// Permet de savoir si un objet Artist appartient ou non à l'application selon son nom + /// + /// Nom de l'objet Artist à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon bool ExistsArtistByName(string name); + /// + /// Permet de savoir si un objet CustomTitle appartient ou non à l'application selon son nom + /// + /// Nom de l'objet CustomTitle à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon bool ExistsCustomTitle(CustomTitle title); + /// + /// Permet de savoir si un objet CustomTitle appartient ou non à l'application selon son nom + /// + /// Nom de l'objet CustomTitle à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon bool ExistsCustomTitleByName(string name); + /// + /// Permet de savoir si un objet InfoTitle appartient ou non à l'application + /// + /// InfoTitle à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon bool ExistsInfoTitle(InfoTitle title); + /// + /// Permet de savoir si un objet InfoTitle appartient ou non à l'application selon son nom + /// + /// Nom de l'objet InfoTitle à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon bool ExistsInfoTitleByName(string name); } \ No newline at end of file diff --git a/Sources/Model/InfoTitle.cs b/Sources/Model/InfoTitle.cs index c3caff4..4905cf9 100644 --- a/Sources/Model/InfoTitle.cs +++ b/Sources/Model/InfoTitle.cs @@ -47,6 +47,15 @@ public class InfoTitle : Title } } + /// + /// Constructeur de la classe InfoTitle + /// + /// Nom de l'InfoTitle + /// Chemin d'accès de l'image de l'InfoTitle + /// Informations complémentaires sur l'InfoTitle + /// Description de l'InfoTitle + /// Genre de l'InfoTitle + /// ID de l'album auquel appartient l'InfoTitle public InfoTitle(string name, string imageURL, string information, string description, Genre genre, long albumID) : base(name,imageURL,information) { Description = description; @@ -54,15 +63,27 @@ public class InfoTitle : Title AlbumID = albumID; } + /// + /// Constructeur par défaut de la classe InfoTitle + /// public InfoTitle() : base(Manager.DEFAULT_NAME, Manager.DEFAULT_URL, Manager.DEFAULT_DESC) { } + /// + /// Ajoute un artiste en tant que Feat de l'InfoTitle + /// + /// public void AddFeat(Artist artist) { feat.Add(artist); } + + /// + /// Enlève un artiste des feats de l'InfoTitle + /// + /// public void RemoveFeat(Artist artiste) { foreach (var item in Feat) diff --git a/Sources/Model/Manager.cs b/Sources/Model/Manager.cs index 6909238..25fab19 100644 --- a/Sources/Model/Manager.cs +++ b/Sources/Model/Manager.cs @@ -6,6 +6,10 @@ namespace Model.Stub; public class Manager : INotifyPropertyChanged { + /// + /// Classe Manager + /// + public event PropertyChangedEventHandler PropertyChanged; public readonly static int MAX_NAME_LENGTH = 75; @@ -140,6 +144,10 @@ public class Manager : INotifyPropertyChanged } } + /// + /// Constructeur de la classe Manager + /// + /// Méthode de sérialisation, gestionnaire des données public Manager(IDataManager dataManager) { DataManager = dataManager; @@ -158,42 +166,65 @@ public class Manager : INotifyPropertyChanged LoadDictionaries(); } + /// + /// Remplis les dictionnaire grâce aux stubs et à LINQ + /// public void LoadDictionaries() { albumsFromArtist = albums.GroupBy(album => album.Artist.Name).ToDictionary(group => group.Key, group => group.AsEnumerable()); infoTitlesFromArtist = infoTitles.GroupBy(infoTitle => GetAlbumById(infoTitle.AlbumID).Artist.Name).ToDictionary(group => group.Key, group => group.AsEnumerable()); } + /// + /// Actualise le morceau en cours CurrentTitle avec le morceau suivant + /// public void NextTitle() { if (currentPlaylist == null) return; currentPlaying = currentPlaylist.NextTitle(); } + /// + /// Actualise le morceau en cours CurrentTitle avec le morceau précédent + /// public void PreviousTitle() { if (CurrentPlaying == null) return; currentPlaying = currentPlaylist.PreviousTitle(); } + /// + /// Permet de connaître le titre en cours + /// + /// Retourne le titre actuel public CustomTitle CurrentTitle() { if (CurrentPlaylist == null) return null; return currentPlaylist.GetCurrentTitle(); } + /// + /// Permet d'activer/désactiver l'option de boucle + /// public void Loop() { if (CurrentPlaylist == null) return; currentPlaylist.LoopTitle = !currentPlaylist.LoopTitle; } + /// + /// Permet d'activer/désactiver l'option de l'aléatoire + /// public void Shuffle() { if (CurrentPlaylist == null) return; currentPlaylist.Shuffle = !currentPlaylist.Shuffle; } + /// + /// Permet d'ajouter un Album à l'application + /// + /// Album à ajouter public void AddAlbum(Album album) { if (GetAlbumByName(album.Name) != null) return; @@ -201,6 +232,10 @@ public class Manager : INotifyPropertyChanged albums = DataManager.GetAlbums(); } + /// + /// Permet d'ajouter un CustomTitle à l'application + /// + /// CustomTitle à ajouter public void AddCustomTitle(CustomTitle title) { if (GetInfoTitleByName(title.Name) != null) return; @@ -208,6 +243,10 @@ public class Manager : INotifyPropertyChanged customTitles = DataManager.GetCustomTitles(); } + /// + /// Permet d'ajouter un InfoTitle à l'application + /// + /// InfoTitle à ajouter public void AddInfoTitle(InfoTitle title) { if (GetInfoTitleByName(title.Name) != null) return; @@ -215,6 +254,10 @@ public class Manager : INotifyPropertyChanged infoTitles = DataManager.GetInfoTitles(); } + /// + /// Permet d'ajouter une Playlist à l'application + /// + /// Playlist à ajouter public void AddPlaylist(Playlist playlist) { if (GetPlaylistByName(playlist.Name) != null) return; @@ -222,6 +265,10 @@ public class Manager : INotifyPropertyChanged playlists = DataManager.GetPlaylists(); } + /// + /// Permet d'ajouter un Artist à l'application + /// + /// Artist à ajouter public void AddArtist(Artist artist) { if (GetArtistByName(artist.Name) != null) return; @@ -229,96 +276,171 @@ public class Manager : INotifyPropertyChanged artists = DataManager.GetArtists(); } + /// + /// Permet de retirer un Album de l'application + /// + /// Album à retirer public void RemoveAlbum(Album album) { DataManager.RemoveAlbum(album); albums = DataManager.GetAlbums(); } + /// + /// Permet de retirer un CustomTitle de l'application + /// + /// CustomTitle à retirer public void RemoveCustomTitle(CustomTitle title) { DataManager.RemoveCustomTitle(title); customTitles = DataManager.GetCustomTitles(); } + /// + /// Permet de retirer un InfoTitle de l'application + /// + /// InfoTitle à retirer public void RemoveInfoTitle(InfoTitle title) { DataManager.RemoveInfoTitle(title); infoTitles = DataManager.GetInfoTitles(); } + /// + /// Permet de retirer une Playlist de l'application + /// + /// Playlist à retirer public void RemovePlaylist(Playlist playlist) { DataManager.RemovePlaylist(playlist); playlists = DataManager.GetPlaylists(); } + /// + /// Permet d'obtenir la liste des objets Playlist de l'application + /// + /// Reourne la liste des objets Playlist de l'application public ObservableCollection GetPlaylists() { return DataManager.GetPlaylists(); } + /// + /// Permet d'obtenir la liste des objets Album de l'application + /// + /// Reourne la liste des objets Album de l'application public ObservableCollection GetAlbums() { return DataManager.GetAlbums(); } + /// + /// Permet d'obtenir la liste des objets CustomTitle de l'application + /// + /// Reourne la liste des objets CustomTitle de l'application public ObservableCollection GetCustomTitles() { return DataManager.GetCustomTitles(); } + /// + /// Permet d'obtenir la liste des objets InfoTitle de l'application + /// + /// Reourne la liste des objets InfoTitle de l'application public ObservableCollection GetInfoTitles() { return DataManager.GetInfoTitles(); } + /// + /// Permet d'obtenir la liste des objets Artist de l'application + /// + /// Reourne la liste des objets Artist de l'application public IEnumerable GetArtists() { return DataManager.GetArtists(); } + /// + /// Permet de charger l'état sauvegardé précédemment dans l'application + /// public void LoadSerialization() { DataManager.LoadSerialization(); } + /// + /// Permet de sauvegarder l'état de l'application + /// public void SaveSerialization() { DataManager.SaveSerialization(); } + /// + /// Permet d'obtenir une Playlist selon son nom + /// + /// Nom de la Playlist + /// Retourne la Playlist correspondant au nom donné en paramètre public Playlist GetPlaylistByName(string name) { return DataManager.GetPlaylistByName(name); } + /// + /// Permet d'obtenir un Artist selon son nom + /// + /// Nom de l'Artist + /// Retourne l'Artist correspondant au nom donné en paramètre public Artist GetArtistByName(string name) { return DataManager.GetArtistByName(name); } + /// + /// Permet d'obtenir un CustomTitle selon son chemin d'accès + /// + /// Chemin d'accès du CustomTitle + /// Retourne le CustomTitle correspondant au chemin d'accès donné en paramètre public CustomTitle GetCustomTitleByPath(string path) { return DataManager.GetCustomTitleByPath(path); } + /// + /// Permet d'obtenir un InfoTitle selon son nom + /// + /// Nom de l'InfoTitle + /// Retourne l'InfoTitle correspondant au nom donné en paramètre public InfoTitle GetInfoTitleByName(string name) { return DataManager.GetInfoTitleByName(name); } + /// + /// Permet d'obtenir un Album selon son nom + /// + /// Nom de l'Album + /// Retourne l'Album correspondant au nom donné en paramètre public Album GetAlbumByName(string name) { return DataManager.GetAlbumByName(name); } + /// + /// Permet d'obtenir un Album selon son ID + /// + /// ID de l'Album + /// Retourne l'Album correspondant au ID donné en paramètre public Album GetAlbumById(long id) { return DataManager.GetAlbumById(id); } + /// + /// Permet la notification, et donc l'actualisation des objets connectés à l'événement lorsque la méthode est appelée + /// + /// Nom de la propriété modifiée protected void OnPropertyChanged([CallerMemberName] string propertyName = null) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } diff --git a/Sources/Model/Playlist.cs b/Sources/Model/Playlist.cs index 7f2a74b..346cfa6 100644 --- a/Sources/Model/Playlist.cs +++ b/Sources/Model/Playlist.cs @@ -131,6 +131,12 @@ public class Playlist : INotifyPropertyChanged private bool isSubMenuVisible; + /// + /// Constructeur de la classe Playlist + /// + /// Nom de la Playlist + /// Description de la Playlist + /// Chemin d'accès de l'image de la Playlist public Playlist(string nom, string description, string imageURL) { Name = nom; @@ -138,18 +144,37 @@ public class Playlist : INotifyPropertyChanged ImageURL = imageURL; } + /// + /// Constructeur par défaut de la Playlist + /// public Playlist() { } + /// + /// Ajoute un titre à la Playlist + /// + /// Morceau à ajouter à la Playlist public void AddTitle(CustomTitle morceau) { titles.Add(morceau); } + /// + /// Supprime un titre de la playlist + /// + /// Morceau à supprimer public void RemoveTitle(CustomTitle morceau) { titles.Remove(morceau); } + /// + /// Permet de connaître le prochain morceau à jouer dans la playlist + /// + /// Retourne le CustomTitle suivant selon les options indiquées par l'utilisateur + /// Vérifie s'il y a des morceaux dans la playlist, puis vérifie si l'option de boucle du morceau est activé. + /// Si elle est activée, cela renvoie le même morceau. Sinon, si l'option aléatoire N'est PAS activée, cela renvoie + /// simplement le morceau à la suite dans la liste des titres de la playlist. Sinon, l'option aléatoire est activée, cela + /// appelle donc une méthode de génération d'un index aléatoire pour avoir un morceau aléatoire dans la liste de la playlist. public CustomTitle NextTitle() { if (titles.Count < 1) return null; @@ -172,8 +197,20 @@ public class Playlist : INotifyPropertyChanged } } + /// + /// Permet de connaître le titre précédentà jouer dans la playlist + /// + /// Retourne le CustomTitle précédent selon les options indiquées par l'utilisateur + /// Vérifie s'il y a des morceaux dans la playlist, puis vérifie si l'option de boucle du morceau est activé. + /// Si elle est activée, cela renvoie le même morceau. Sinon, si l'option aléatoire N'est PAS activée, cela renvoie + /// simplement le morceau précédent celui actuel dans la liste des titres de la playlist. Si le morceau actuel est le + /// premier, le morceau précédent est le dernier de la playlist. + /// Sinon, l'option aléatoire est activée, la liste des morceaux jouée est analysée. Si elle est vide, le morceau + /// actuel est retourné. Sinon, cela renvoie le dernier élément de la liste des morceaux joués. A noter que cette liste ne + /// stocke que les index des titres présents dans la playlist. public CustomTitle PreviousTitle() { + if (titles.Count < 1) return null; if (LoopTitle) { return GetCurrentTitle(); @@ -204,6 +241,12 @@ public class Playlist : INotifyPropertyChanged } } + /// + /// Permet de connaître le morceau actuel de la playlist. + /// + /// Retourne le morceau actuel de la playlist + /// Tout d'abord, des tests de vérification sur l'index sont effectués pour éviter les bugs. Puis, cela renvoie le morceau + /// à l'index de la playlist dans la liste. public CustomTitle GetCurrentTitle() { if (Index < 0) Index = 0; @@ -249,6 +292,12 @@ public class Playlist : INotifyPropertyChanged return $"Name : {Name}"; } + /// + /// Permet de générer un nombre entre 0 et n + /// + /// Limite supérieure du nombre à générer + /// Retourne un nombre entre 0 et n + /// Cette méthode est effectuée via RandomNumberGenerator afin d'obtenir un aléatoire moins prévisible. static int RandomGenerator(int n) { RandomNumberGenerator rng = RandomNumberGenerator.Create(); @@ -258,6 +307,11 @@ public class Playlist : INotifyPropertyChanged return (int)(randomNumber % n) + 1; } + /// + /// Vérifie si la Playlist contient un certain CustomTitle + /// + /// CustomTitle à vérifier + /// Booléen True si le CustomTitle est contenu dans la Playlist, False sinon public bool HasCustomTitle(CustomTitle customTitle) { foreach(CustomTitle custom in Titles) @@ -267,6 +321,10 @@ public class Playlist : INotifyPropertyChanged return false; } + /// + /// Permet la notification, et donc l'actualisation des objets connectés à l'événement lorsque la méthode est appelée + /// + /// Nom de la propriété modifiée protected void OnPropertyChanged([CallerMemberName] string propertyName = null) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } diff --git a/Sources/Model/Title.cs b/Sources/Model/Title.cs index 673e60b..cde0bd3 100644 --- a/Sources/Model/Title.cs +++ b/Sources/Model/Title.cs @@ -67,6 +67,12 @@ public class Title private string information = Manager.DEFAULT_DESC; + /// + /// Constructeur de la classe Title + /// + /// Nom du Title + /// Chemin d'accès de l'image du Title + /// Informations sur le Title public Title(string nom, string file_Name, string informations) { Name = nom; @@ -105,6 +111,10 @@ public class Title return $"Name : {Name}"; } + /// + /// Permet la notification, et donc l'actualisation des objets connectés à l'événement lorsque la méthode est appelée + /// + /// Nom de la propriété modifiée protected void OnPropertyChanged([CallerMemberName] string propertyName = null) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } From 769f61e293624569e219a7b72da690ee0bc86d63 Mon Sep 17 00:00:00 2001 From: Corentin LEMAIRE Date: Fri, 9 Jun 2023 18:27:52 +0200 Subject: [PATCH 7/8] Finish commenting stubs --- Sources/Model/Stub/StubAlbum.cs | 23 +++ Sources/Model/Stub/StubArtist.cs | 23 +++ Sources/Model/Stub/StubCustomTitle.cs | 23 +++ Sources/Model/Stub/StubInfoTitle.cs | 35 ++++ Sources/Model/Stub/StubManager.cs | 287 +++++++++++++++++++++++++- Sources/Model/Stub/StubPlaylist.cs | 23 +++ 6 files changed, 413 insertions(+), 1 deletion(-) diff --git a/Sources/Model/Stub/StubAlbum.cs b/Sources/Model/Stub/StubAlbum.cs index 4c83225..6abd3aa 100644 --- a/Sources/Model/Stub/StubAlbum.cs +++ b/Sources/Model/Stub/StubAlbum.cs @@ -22,6 +22,9 @@ public class StubAlbum private readonly ObservableCollection albums; + /// + /// Constructeur de la classe StubAlbum + /// public StubAlbum() { stubArtist = new StubArtist(); @@ -44,10 +47,20 @@ public class StubAlbum }; } + /// + /// Permet d'obtenir la liste des albums + /// + /// Retourne la liste des albums public ObservableCollection GetAlbums() { return albums; } + + /// + /// Permet d'obtenir un album selon son nom + /// + /// Nom de l'album recherché + /// Retourne l'album correspondant au nom donné en paramètre public Album GetAlbumByName(string name) { foreach(Album album in albums) @@ -59,10 +72,20 @@ public class StubAlbum } return null; } + + /// + /// Permet d'ajouter un album à la liste des albums + /// + /// Album à ajouter public void AddAlbum(Album album) { albums.Add(album); } + + /// + /// Permet de retirer un album de la liste des albums + /// + /// Album à retirer public void RemoveAlbum(Album album) { albums.Remove(album); diff --git a/Sources/Model/Stub/StubArtist.cs b/Sources/Model/Stub/StubArtist.cs index 48c2aeb..7075777 100644 --- a/Sources/Model/Stub/StubArtist.cs +++ b/Sources/Model/Stub/StubArtist.cs @@ -9,6 +9,9 @@ public class StubArtist private readonly List artists; + /// + /// Constructeur de la classe StubArtist + /// public StubArtist() { artists = new List() @@ -23,10 +26,20 @@ public class StubArtist }; } + /// + /// Permet d'obtenir la liste des artistes + /// + /// Retourne la liste des artistes public List GetArtists() { return artists; } + + /// + /// Permet d'obtenir un artiste selon son nom + /// + /// Nom de l'artiste recherché + /// Retourne l'artiste correspondant au nom donné en paramètre public Artist GetArtistByName(string name) { foreach (var artist in artists) @@ -38,10 +51,20 @@ public class StubArtist } return null; } + + /// + /// Permet d'ajouter un artiste à la liste des artistes + /// + /// Artiste à ajouter public void AddArtist(Artist artist) { artists.Add(artist); } + + /// + /// Permet de retirer un artiste de la liste des artistes + /// + /// Artiste à retirer public void RemoveArtist(Artist artist) { artists.Remove(artist); diff --git a/Sources/Model/Stub/StubCustomTitle.cs b/Sources/Model/Stub/StubCustomTitle.cs index 10a6747..0f473c6 100644 --- a/Sources/Model/Stub/StubCustomTitle.cs +++ b/Sources/Model/Stub/StubCustomTitle.cs @@ -12,6 +12,9 @@ public class StubCustomTitle private readonly ObservableCollection customTitles; + /// + /// Constructeur de la classe StubCustomTitle + /// public StubCustomTitle() { CustomTitle Custom1 = new CustomTitle("MaMusique", "mp3.png", "info1", "chemin1"); @@ -32,10 +35,20 @@ public class StubCustomTitle }; } + /// + /// Permet d'obtenir la liste des CustomTitle + /// + /// Retourne la liste des CustomTitle public ObservableCollection GetCustomTitles() { return customTitles; } + + /// + /// Permet d'obtenir une liste de CustomTitle selon les noms donnés en paramètre + /// + /// Liste des noms des CustomTitle recherchés + /// Retourne la liste des CustomTitle correspondant aux noms donnés en paramètre public List GetCustomTitlesByNames(List names) { List Customs = new List(); @@ -51,10 +64,20 @@ public class StubCustomTitle } return Customs; } + + /// + /// Permet d'ajouter un CustomTitle à la liste des CustomTitle + /// + /// CustomTitle à ajouter public void AddCustomTitle(CustomTitle customTitle) { customTitles.Add(customTitle); } + + /// + /// Permet de retirer un CustomTitle de la liste des CustomTitle + /// + /// CustomTitle à retirer public void RemoveCustomTitle(CustomTitle customTitle) { customTitles.Remove(customTitle); diff --git a/Sources/Model/Stub/StubInfoTitle.cs b/Sources/Model/Stub/StubInfoTitle.cs index e10ee87..e49b465 100644 --- a/Sources/Model/Stub/StubInfoTitle.cs +++ b/Sources/Model/Stub/StubInfoTitle.cs @@ -21,6 +21,9 @@ public class StubInfoTitle private readonly ObservableCollection infoTitles; + /// + /// Constructeur de la classe StubInfoTitle + /// public StubInfoTitle() { stubAlbum = new StubAlbum(); @@ -273,10 +276,20 @@ public class StubInfoTitle }; } + /// + /// Permet d'obtenir une liste des InfoTitle + /// + /// Retourne une liste des InfoTitle public ObservableCollection GetInfoTitles() { return infoTitles; } + + /// + /// Permet d'obtenir des InfoTitle selon les noms donnés en paramètre + /// + /// Liste des noms des InfoTitle recherchés + /// Retourne la liste des InfoTitle correspondant aux noms passés en paramètre public List GetInfoTitlesByNames(List names) { List infos = new List(); @@ -292,18 +305,40 @@ public class StubInfoTitle } return infos; } + + /// + /// Permet d'ajouter un InfoTitle à la liste des InfoTitle + /// + /// InfoTitle à ajouter public void AddInfoTitle(InfoTitle title) { infoTitles.Add(title); } + + /// + /// Permet de retirer un InfoTitle de la liste des InfoTitle + /// + /// InfoTitle à retirer public void RemoveInfoTitle(InfoTitle title) { infoTitles.Remove(title); } + + /// + /// Permet d'ajouter un artiste à la liste des feat d'un InfoTitle + /// + /// InfoTitle dans lequel ajouter le feat + /// Artist à ajouter dans la liste des feats de l'InfoTitle public static void AddFeat(InfoTitle infoTitle, Artist artist) { infoTitle.AddFeat(artist); } + + /// + /// Permet de retirer un artiste de la liste des feat d'un InfoTitle + /// + /// InfoTitle depuis lequel retirer le feat + /// Artist à retirer de la liste des feats de l'InfoTitle public static void RemoveFeat(InfoTitle infoTitle, Artist artist) { infoTitle.RemoveFeat(artist); diff --git a/Sources/Model/Stub/StubManager.cs b/Sources/Model/Stub/StubManager.cs index 6af47a4..2917e1e 100644 --- a/Sources/Model/Stub/StubManager.cs +++ b/Sources/Model/Stub/StubManager.cs @@ -56,6 +56,9 @@ public class StubManager : IDataManager private readonly StubPlaylist stubPlaylist; + /// + /// Constructeut de la classe StubManager + /// public StubManager() { stubInfoTitle = new StubInfoTitle(); @@ -66,88 +69,155 @@ public class StubManager : IDataManager LoadSerialization(); } + /// + /// Permet d'obtenir la liste des albums + /// + /// Retourne la liste des albums public ObservableCollection GetAlbums() { return StubAlbum.GetAlbums(); } + /// + /// Permet d'obtenir la liste des artistes + /// + /// Retourne la liste des artistes public List GetArtists() { return StubArtist.GetArtists(); } + /// + /// Permet d'obtenir la liste des playlists + /// + /// Retourne la liste des playlists public ObservableCollection GetPlaylists() { return StubPlaylist.GetPlaylists(); } + /// + /// Permet d'obtenir la liste des CustomTitles + /// + /// Retourne la liste des CustomTitles public ObservableCollection GetCustomTitles() { return StubCustomTitle.GetCustomTitles(); } + /// + /// Permet d'obtenir la liste des InfoTitles + /// + /// Retourne la liste des InfoTitles public ObservableCollection GetInfoTitles() { return StubInfoTitle.GetInfoTitles(); } + /// + /// Permet d'ajouter un objet Album à l'application + /// + /// Album à ajouter public void AddAlbum(Album album) { StubAlbum.AddAlbum(album); } + /// + /// Permet d'ajouter un objet CustomTitle à l'application + /// + /// CustomTitle à ajouter public void AddCustomTitle(CustomTitle title) { StubCustomTitle.AddCustomTitle(title); } + /// + /// Permet d'ajouter un objet InfoTitle à l'application + /// + /// InfoTitle à ajouter public void AddInfoTitle(InfoTitle title) { StubInfoTitle.AddInfoTitle(title); } + /// + /// Permet d'ajouter un artiste à la liste des feat d'un InfoTitle + /// + /// InfoTitle dans lequel ajouter le feat + /// Artist à ajouter dans la liste des feats de l'InfoTitle public static void AddFeat(InfoTitle infoTitle, Artist artist) { StubInfoTitle.AddFeat(infoTitle, artist); } + /// + /// Permet d'ajouter un objet Playlist à l'application + /// + /// Playlist à ajouter public void AddPlaylist(Playlist playlist) { StubPlaylist.AddPlaylist(playlist); } + /// + /// Permet d'ajouter un objet Artist à l'application + /// + /// Artist à ajouter public void AddArtist(Artist artist) { StubArtist.AddArtist(artist); } - + /// + /// Permet de retirer un objet Album de l'application + /// + /// Album à retirer public void RemoveAlbum(Album album) { StubAlbum.RemoveAlbum(album); } + /// + /// Permet de retirer un objet CustomTitle de l'application + /// + /// CustomTitle à retirer public void RemoveCustomTitle(CustomTitle title) { StubCustomTitle.RemoveCustomTitle(title); } + /// + /// Permet de retirer un objet InfoTitle de l'application + /// + /// InfoTitle à retirer public void RemoveInfoTitle(InfoTitle title) { StubInfoTitle.RemoveInfoTitle(title); } + /// + /// Permet de retirer un objet Playlist de l'application + /// + /// Playlist à retirer public void RemovePlaylist(Playlist playlist) { StubPlaylist.RemovePlaylist(playlist); } + /// + /// Permet de retirer un objet Artist de l'application + /// + /// Artist à retirer public void RemoveArtist(Artist artist) { StubArtist.RemoveArtist(artist); } + /// + /// Permet de charger les données + /// public void LoadSerialization() { foreach(InfoTitle infoTitle in StubInfoTitle.InfoTitles) @@ -156,11 +226,19 @@ public class StubManager : IDataManager } } + /// + /// Permet de sauvegarder l'état de l'application + /// public void SaveSerialization() { // Doesn't do anything because it's Stubs } + /// + /// Permet d'obtenir un objet CustomTitle à partir de son chemin d'accès + /// + /// Chemin d'accès de l'objet CustomTitle + /// Retourne l'objet CustomTitle avec un chemin d'accès équivalent à celui donné en paramètre public CustomTitle GetCustomTitleByPath(string custom) { foreach (CustomTitle customTitle in StubCustomTitle.GetCustomTitles()) @@ -173,6 +251,11 @@ public class StubManager : IDataManager return null; } + /// + /// Permet d'obtenir un objet InfoTitle à partir de son nom + /// + /// Nom de l'objet InfoTitle + /// Retourne l'objet InfoTitle avec un nom équivalent à celui donné en paramètre public InfoTitle GetInfoTitleByName(string name) { foreach(InfoTitle title in StubInfoTitle.GetInfoTitles()) @@ -185,6 +268,11 @@ public class StubManager : IDataManager return null; } + /// + /// Permet d'obtenir un objet Album à partir de son nom + /// + /// Nom de l'objet Album + /// Retourne l'objet Album avec un nom équivalent à celui donné en paramètre public Album GetAlbumByName(string name) { foreach(Album album in StubAlbum.GetAlbums()) @@ -197,6 +285,11 @@ public class StubManager : IDataManager return null; } + /// + /// Permet d'obtenir un objet Artist à partir de son nom + /// + /// Nom de l'objet Artist + /// Retourne l'objet Artist avec un nom équivalent à celui donné en paramètre public Artist GetArtistByName(string name) { foreach(Artist artist in StubArtist.GetArtists()) @@ -209,6 +302,10 @@ public class StubManager : IDataManager return null; } + /// + /// Permet d'ajouter des objets Album à l'application + /// + /// Liste d'Album à ajouter public void AddAlbums(List albumsList) { foreach (Album a in albumsList) @@ -217,6 +314,10 @@ public class StubManager : IDataManager } } + /// + /// Permet d'ajouter des objets Artist à l'application + /// + /// Liste d'Artist à ajouter public void AddArtists(List artistsList) { foreach (Artist a in artistsList) @@ -225,6 +326,10 @@ public class StubManager : IDataManager } } + /// + /// Permet d'ajouter des objets Playlist à l'application + /// + /// Liste de Playlist à ajouter public void AddPlaylists(List playlistsList) { foreach (Playlist p in playlistsList) @@ -233,6 +338,10 @@ public class StubManager : IDataManager } } + /// + /// Permet d'ajouter des objets CustomTitle à l'application + /// + /// Liste de CustomTitle à ajouter public void AddCustomTitles(List customTitlesList) { foreach (CustomTitle ct in customTitlesList) @@ -241,6 +350,10 @@ public class StubManager : IDataManager } } + /// + /// Permet d'ajouter des objets InfoTitle à l'application + /// + /// Liste d'InfoTitle à ajouter public void AddInfoTitles(List infoTitlesList) { foreach (InfoTitle it in infoTitlesList) @@ -249,6 +362,11 @@ public class StubManager : IDataManager } } + /// + /// Permet d'obtenir un objet Playlist à partir de son nom + /// + /// Nom de l'objet Playlist + /// Retourne l'objet Playlist avec un nom équivalent à celui donné en paramètre public Playlist GetPlaylistByName(string name) { foreach (Playlist p in StubPlaylist.Playlists) @@ -261,6 +379,14 @@ public class StubManager : IDataManager return null; } + /// + /// Modifie un objet CustomTitle avec les informations données en paramètre + /// + /// CustomTitle à modifier + /// Nom de l'objet CustomTitle + /// Chemin d'accès de l'image de l'objet CustomTitle + /// Informations de l'objet CustomTitle + /// Chemin d'accès de l'objet CustomTitle public void UpdateCustomTitle(CustomTitle title, string name, string url, string info, string path) { title.Name = name; @@ -269,6 +395,14 @@ public class StubManager : IDataManager title.Path = path; } + /// + /// Modifie un objet CustomTitle avec les informations données en paramètre + /// + /// Chemin d'accès du CustomTitle à modifier + /// Nom de l'objet CustomTitle + /// Chemin d'accès de l'image de l'objet CustomTitle + /// Informations de l'objet CustomTitle + /// Chemin d'accès de l'objet CustomTitle public void UpdateCustomTitleByPath(string path, string name, string newUrl, string info, string newPath) { CustomTitle title = GetCustomTitleByPath(path); @@ -281,6 +415,16 @@ public class StubManager : IDataManager } } + /// + /// Modifie un objet InfoTitle avec les informations données en paramètre + /// + /// InfoTitle à modifier + /// Nom de l'objet InfoTitle + /// Chemin d'accès de l'image de l'objet InfoTitle + /// Informations de l'objet InfoTitle + /// Artist de l'objet InfoTitle + /// Description de l'objet InfoTitle + /// Genre de l'objet InfoTitle public void UpdateInfoTitle(InfoTitle title, string name, string url, string info, Artist artist, string description, Genre genre) { title.Name = name; @@ -290,6 +434,15 @@ public class StubManager : IDataManager title.Genre = genre; } + /// + /// Modifie un objet InfoTitle avec les informations données en paramètre + /// + /// Nom de l'objet InfoTitle à modifier + /// Chemin d'accès de l'image de l'objet InfoTitle + /// Informations de l'objet InfoTitle + /// Artist de l'objet InfoTitle + /// Description de l'objet InfoTitle + /// Genre de l'objet InfoTitle public void UpdateInfoTitleByName(string name, string newUrl, string info, Artist artist, string description, Genre genre) { InfoTitle title = GetInfoTitleByName(name); @@ -303,6 +456,15 @@ public class StubManager : IDataManager } } + /// + /// Modifie un objet Album avec les informations données en paramètre + /// + /// Album à modifier + /// Nom de l'objet Album + /// Chemin d'accès de l'image de l'objet Album + /// Artist de l'objet Album + /// Description de l'objet Album + /// Informations de l'objet Album public void UpdateAlbum(Album album, string name, string url, Artist artist, string description, string info) { album.Name = name; @@ -312,6 +474,14 @@ public class StubManager : IDataManager album.Information = info; } + /// + /// Modifie un objet Album avec les informations données en paramètre + /// + /// Nom de l'objet Album à modifier + /// Chemin d'accès de l'image de l'objet Album + /// Artist de l'objet Album + /// Description de l'objet Album + /// Informations de l'objet Album public void UpdateAlbumByName(string name, string newUrl, Artist artist, string description, string info) { Album album = GetAlbumByName(name); @@ -325,6 +495,15 @@ public class StubManager : IDataManager } } + /// + /// Modifie un objet Album avec les informations données en paramètre + /// + /// Album à modifier + /// Nom de l'objet Album + /// Chemin d'accès de l'image de l'objet Album + /// Nom de l'artiste de l'objet Album + /// Description de l'objet Album + /// Informations de l'objet Album public void UpdateAlbumByArtistName(Album album, string name, string url, string artist, string description, string info) { album.Name = name; @@ -338,6 +517,14 @@ public class StubManager : IDataManager album.Information = info; } + /// + /// Modifie un objet Album avec les informations données en paramètre + /// + /// Nom de l'objet Album à modifier + /// Chemin d'accès de l'image de l'objet Album + /// Nom de l'artiste de l'objet Album + /// Description de l'objet Album + /// Informations de l'objet Album public void UpdateAlbumByNameByArtistName(string name, string newUrl, string artist, string description, string info) { Album album = GetAlbumByName(name); @@ -355,6 +542,13 @@ public class StubManager : IDataManager } } + /// + /// Modifie un objet Playlist avec les informations données en paramètre + /// + /// Playlist à modifier + /// Nom de l'objet Playlist + /// Description de l'objet Playlist + /// Chemin d'accès de l'image de l'objet Playlist public void UpdatePlaylist(Playlist playlist, string name, string description, string url) { playlist.Name = name; @@ -362,6 +556,12 @@ public class StubManager : IDataManager playlist.ImageURL = url; } + /// + /// Modifie un objet Playlist avec les informations données en paramètre + /// + /// Nom de l'objet Playlist à modifier + /// Description de l'objet Playlist + /// Chemin d'accès de l'image de l'objet Playlist public void UpdatePlaylistByName(string name, string description, string newUrl) { Playlist playlist = GetPlaylistByName(name); @@ -373,11 +573,21 @@ public class StubManager : IDataManager } } + /// + /// Modifie un objet Artist avec les informations données en paramètre + /// + /// Artiste à modifier + /// Nom de l'objet Artist public void UpdateArtist(Artist artist, string name) { artist.Name = name; } + /// + /// Modifie un objet Artist avec les informations données en paramètre + /// + /// Nom de l'objet Artist à modifier + /// Nouveau nom de l'objet Artist public void UpdateArtistByName(string name, string newName) { Artist artist = GetArtistByName(newName); @@ -387,6 +597,10 @@ public class StubManager : IDataManager } } + /// + /// Permet de retirer des objets Album de l'application + /// + /// Liste des objets Album à retirer de l'application public void RemoveAlbums(List albumsList) { foreach (Album album in albumsList) @@ -395,6 +609,10 @@ public class StubManager : IDataManager } } + /// + /// Permet de retirer des objets Artist de l'application + /// + /// Liste des objets Artist à retirer de l'application public void RemoveArtists(List artistsList) { foreach (Artist artist in artistsList) @@ -403,6 +621,10 @@ public class StubManager : IDataManager } } + /// + /// Permet de retirer des objets Playlist de l'application + /// + /// Liste des objets Playlist à retirer de l'application public void RemovePlaylists(List playlistsList) { foreach (Playlist playlist in playlistsList) @@ -411,6 +633,10 @@ public class StubManager : IDataManager } } + /// + /// Permet de retirer des objets CustomTitle de l'application + /// + /// Liste des objets CustomTitle à retirer de l'application public void RemoveCustomTitles(List customTitlesList) { foreach (CustomTitle customTitle in customTitlesList) @@ -419,6 +645,10 @@ public class StubManager : IDataManager } } + /// + /// Permet de retirer des objets InfoTitle de l'application + /// + /// Liste des objets InfoTitle à retirer de l'application public void RemoveInfoTitles(List infoTitlesList) { foreach (InfoTitle infoTitle in infoTitlesList) @@ -427,6 +657,11 @@ public class StubManager : IDataManager } } + /// + /// Permet de savoir si un objet Playlist appartient ou non à l'application + /// + /// Playlist à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon public bool ExistsPlaylist(Playlist playlist) { foreach (Playlist p in StubPlaylist.Playlists) @@ -439,6 +674,11 @@ public class StubManager : IDataManager return false; } + /// + /// Permet de savoir si un objet Playlist appartient ou non à l'application selon son nom + /// + /// Nom de l'objet Playlist à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon public bool ExistsPlaylistByName(string name) { foreach (Playlist p in StubPlaylist.Playlists) @@ -451,6 +691,11 @@ public class StubManager : IDataManager return false; } + /// + /// Permet de savoir si un objet Album appartient ou non à l'application + /// + /// Album à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon public bool ExistsAlbum(Album album) { foreach (Album a in StubAlbum.Albums) @@ -463,6 +708,11 @@ public class StubManager : IDataManager return false; } + /// + /// Permet de savoir si un objet Album appartient ou non à l'application selon son nom + /// + /// Nom de l'objet Album à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon public bool ExistsAlbumByName(string name) { foreach (Album a in StubAlbum.Albums) @@ -475,6 +725,11 @@ public class StubManager : IDataManager return false; } + /// + /// Permet de savoir si un objet Artist appartient ou non à l'application + /// + /// Artist à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon public bool ExistsArtist(Artist artist) { foreach (Artist a in StubArtist.Artists) @@ -487,6 +742,11 @@ public class StubManager : IDataManager return false; } + /// + /// Permet de savoir si un objet Artist appartient ou non à l'application selon son nom + /// + /// Nom de l'objet Artist à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon public bool ExistsArtistByName(string name) { foreach (Artist a in StubArtist.Artists) @@ -499,6 +759,11 @@ public class StubManager : IDataManager return false; } + /// + /// Permet de savoir si un objet CustomTitle appartient ou non à l'application selon son nom + /// + /// Nom de l'objet CustomTitle à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon public bool ExistsCustomTitle(CustomTitle title) { foreach (CustomTitle ct in StubCustomTitle.CustomTitles) @@ -511,6 +776,11 @@ public class StubManager : IDataManager return false; } + /// + /// Permet de savoir si un objet CustomTitle appartient ou non à l'application selon son nom + /// + /// Nom de l'objet CustomTitle à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon public bool ExistsCustomTitleByName(string name) { foreach (CustomTitle ct in StubCustomTitle.CustomTitles) @@ -523,6 +793,11 @@ public class StubManager : IDataManager return false; } + /// + /// Permet de savoir si un objet InfoTitle appartient ou non à l'application + /// + /// InfoTitle à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon public bool ExistsInfoTitle(InfoTitle title) { foreach (InfoTitle it in StubInfoTitle.InfoTitles) @@ -535,6 +810,11 @@ public class StubManager : IDataManager return false; } + /// + /// Permet de savoir si un objet InfoTitle appartient ou non à l'application selon son nom + /// + /// Nom de l'objet InfoTitle à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon public bool ExistsInfoTitleByName(string name) { foreach (InfoTitle it in StubInfoTitle.InfoTitles) @@ -547,6 +827,11 @@ public class StubManager : IDataManager return false; } + /// + /// Permet d'obtenir un objet Album à partir de son ID + /// + /// ID de l'objet Album + /// Retourne l'objet Album avec un ID équivalent à celui donné en paramètre public Album GetAlbumById(long id) { foreach(Album album in StubAlbum.Albums) diff --git a/Sources/Model/Stub/StubPlaylist.cs b/Sources/Model/Stub/StubPlaylist.cs index 0459d08..fa6f192 100644 --- a/Sources/Model/Stub/StubPlaylist.cs +++ b/Sources/Model/Stub/StubPlaylist.cs @@ -12,6 +12,9 @@ public class StubPlaylist private readonly ObservableCollection playlists; + /// + /// Constructeur de la classe StubPlaylist + /// public StubPlaylist() { Playlist Playlist1 = new Playlist("Playlist1", "desc1", "url1.png"); @@ -29,10 +32,20 @@ public class StubPlaylist }; } + /// + /// Permet d'obtenir la liste des Playlist + /// + /// Retourne la liste des Playlist public ObservableCollection GetPlaylists() { return playlists; } + + /// + /// Permet d'obtenir une Playlist selon son nom + /// + /// Nom de la Playlist recherchée + /// Retourne la Playlist correspondant au nom donné en paramètre public Playlist GetPlaylistByName(string name) { foreach(var playlist in playlists) @@ -44,10 +57,20 @@ public class StubPlaylist } return null; } + + /// + /// Permet d'ajouter une Playlist à la liste des Playlist + /// + /// public void AddPlaylist(Playlist playlist) { playlists.Add(playlist); } + + /// + /// Permet de retirer une Playlist de la liste des Playlist + /// + /// public void RemovePlaylist(Playlist playlist) { playlists.Remove(playlist); From 62b194a046a9a697b6169212db0e920f033d51e7 Mon Sep 17 00:00:00 2001 From: Corentin LEMAIRE Date: Fri, 9 Jun 2023 19:14:09 +0200 Subject: [PATCH 8/8] Finish commenting LINQ_XML_Serialization --- .../Serialization/LINQ_XML_Serialization.cs | 320 +++++++++++++++++- 1 file changed, 319 insertions(+), 1 deletion(-) diff --git a/Sources/Model/Serialization/LINQ_XML_Serialization.cs b/Sources/Model/Serialization/LINQ_XML_Serialization.cs index f9dcabd..e87d5e0 100644 --- a/Sources/Model/Serialization/LINQ_XML_Serialization.cs +++ b/Sources/Model/Serialization/LINQ_XML_Serialization.cs @@ -71,6 +71,10 @@ public class LinqXmlSerialization : IDataManager } } + /// + /// Constructeur de la classe LinqXmlSerialization + /// + /// Chemin d'accès des fichiers de sauvegarde des données public LinqXmlSerialization(string pathDirectory) { XMLPATH = pathDirectory; @@ -89,81 +93,145 @@ public class LinqXmlSerialization : IDataManager LoadSerialization(); } + + /// + /// Permet d'ajouter un objet Album à l'application + /// + /// Album à ajouter public void AddAlbum(Album album) { albums.Add(album); } + /// + /// Permet d'ajouter un objet Artist à l'application + /// + /// Artist à ajouter public void AddArtist(Artist artist) { artists.Add(artist); } + /// + /// Permet d'ajouter un objet CustomTitle à l'application + /// + /// CustomTitle à ajouter public void AddCustomTitle(CustomTitle title) { customTitles.Add(title); } + /// + /// Permet d'ajouter un objet InfoTitle à l'application + /// + /// InfoTitle à ajouter public void AddInfoTitle(InfoTitle title) { infoTitles.Add(title); } + /// + /// Permet d'ajouter un objet Playlist à l'application + /// + /// Playlist à ajouter public void AddPlaylist(Playlist playlist) { playlists.Add(playlist); } + /// + /// Permet d'obtenir une liste d'objets Album + /// + /// Retourne une liste d'objets Album public ObservableCollection GetAlbums() { return albums; } + /// + /// Permet d'obtenir une liste d'objets Artist + /// + /// Retourne une liste d'objets Artist public List GetArtists() { return artists; } + /// + /// Permet d'obtenir une liste d'objets CustomTitle + /// + /// Retourne une liste d'objets CustomTitle public ObservableCollection GetCustomTitles() { return customTitles; } + /// + /// Permet d'obtenir une liste d'objets InfoTitle + /// + /// Retourne une liste d'objets InfoTitle public ObservableCollection GetInfoTitles() { return infoTitles; } + /// + /// Permet d'obtenir une liste d'objets Playlist + /// + /// Retourne une liste d'objets Playlist public ObservableCollection GetPlaylists() { return playlists; } + /// + /// Permet de retirer un objet Album de l'application + /// + /// Album à retirer public void RemoveAlbum(Album album) { albums.Remove(album); } + /// + /// Permet de retirer un objet Artist de l'application + /// + /// Artist à retirer public void RemoveArtist(Artist artist) { artists.Remove(artist); } + /// + /// Permet de retirer un objet CustomTitle de l'application + /// + /// CustomTitle à retirer public void RemoveCustomTitle(CustomTitle title) { customTitles.Remove(title); } + /// + /// Permet de retirer un objet InfoTitle de l'application + /// + /// InfoTitle à retirer public void RemoveInfoTitle(InfoTitle title) { infoTitles.Remove(title); } + /// + /// Permet de retirer un objet Playlist de l'application + /// + /// Playlist à retirer public void RemovePlaylist(Playlist playlist) { playlists.Remove(playlist); } + /// + /// Permet de charger les données + /// public void LoadSerialization() { LoadArtists(); @@ -173,6 +241,9 @@ public class LinqXmlSerialization : IDataManager LoadPlaylists(); } + /// + /// Permet de sauvegarder l'état de l'application + /// public void SaveSerialization() { SaveArtists(); @@ -182,6 +253,9 @@ public class LinqXmlSerialization : IDataManager SaveAlbums(); } + /// + /// Permet de charger les playlists depuis le fichier correspondant + /// public void LoadPlaylists() { if (!File.Exists(XMLFILEPLAYLISTS)) @@ -246,6 +320,9 @@ public class LinqXmlSerialization : IDataManager } } + /// + /// Permet de sauvegarder les playlists dans le fichier correpondant + /// public void SavePlaylists() { XDocument PlaylistsFichier = new XDocument(); @@ -269,17 +346,26 @@ public class LinqXmlSerialization : IDataManager } } } - + + /// + /// Permet de charger les artistes depuis les stubs + /// public void LoadArtists() { artists = StubInfoTitle.StubAlbum.StubArtist.GetArtists(); } + /// + /// Permet de sauvegarder les artistes. Ne fais rien car ce sont les stubs qui s'en occupent + /// public void SaveArtists() { // Don't do anything because it's static data } + /// + /// Permet de charger les CustomTitles depuis le fichier de sauvegarde correspondant + /// public void LoadCustomTitles() { if (!File.Exists(XMLFILECUSTOMS)) @@ -317,6 +403,9 @@ public class LinqXmlSerialization : IDataManager customTitles = new ObservableCollection(customTitles2); } + /// + /// Permet de sauvegarder les CustomTitles dans le fichier correspondant + /// public void SaveCustomTitles() { XDocument CustomsFile = new XDocument(); @@ -342,16 +431,25 @@ public class LinqXmlSerialization : IDataManager } } + /// + /// Permet de charger les albums depuis les stubs + /// public void LoadAlbums() { albums = StubInfoTitle.StubAlbum.GetAlbums(); } + /// + /// Permet de sauvegarder les albums. Ne fais rien car ce sont les stubs qui s'en occupent + /// public void SaveAlbums() { // Don't do anything because it's static data } + /// + /// Permet de charger les InfoTitles depuis les stubs + /// public void LoadInfoTitles() { infoTitles = StubInfoTitle.GetInfoTitles(); @@ -361,11 +459,19 @@ public class LinqXmlSerialization : IDataManager } } + /// + /// Permet de sauvegarder les InfoTitles. Ne fais rien car ce sont les stubs qui s'en occupent + /// public void SaveInfoTitles() { // Don't do anything because it's static data } + /// + /// Permet de passer d'un genre à son nom en chaîne de caractère + /// + /// Genre à transformer + /// Retourne la chaîne de caractère correspondant au genre public static Genre GetGenreByName(string genre) { if (genre == "HIP_HOP") return Genre.HIP_HOP; @@ -388,6 +494,11 @@ public class LinqXmlSerialization : IDataManager else return Genre.K_POP; } + /// + /// Permet d'obtenir un objet InfoTitle à partir de son nom + /// + /// Nom de l'objet InfoTitle + /// Retourne l'objet InfoTitle avec un nom équivalent à celui donné en paramètre public InfoTitle GetInfoTitleByName(string name) { foreach(InfoTitle it in infoTitles) @@ -400,6 +511,11 @@ public class LinqXmlSerialization : IDataManager return null; } + /// + /// Permet d'obtenir un objet Artist à partir de son nom + /// + /// Nom de l'objet Artist + /// Retourne l'objet Artist avec un nom équivalent à celui donné en paramètre public Artist GetArtistByName(string name) { foreach(Artist a in artists) @@ -412,6 +528,11 @@ public class LinqXmlSerialization : IDataManager return null; } + /// + /// Permet d'obtenir un objet Album à partir de son nom + /// + /// Nom de l'objet Album + /// Retourne l'objet Album avec un nom équivalent à celui donné en paramètre public Album GetAlbumByName(string name) { foreach(Album a in albums) @@ -424,6 +545,11 @@ public class LinqXmlSerialization : IDataManager return null; } + /// + /// Permet d'obtenir un objet Album à partir de son ID + /// + /// ID de l'objet Album + /// Retourne l'objet Album avec un ID équivalent à celui donné en paramètre public Album GetAlbumById(long id) { foreach(Album a in albums) @@ -433,6 +559,11 @@ public class LinqXmlSerialization : IDataManager return null; } + /// + /// Permet d'obtenir un objet CustomTitle à partir de son chemin d'accès + /// + /// Chemin d'accès de l'objet CustomTitle + /// Retourne l'objet CustomTitle avec un chemin d'accès équivalent à celui donné en paramètre public CustomTitle GetCustomTitleByPath(string custom) { foreach(CustomTitle customTitle in customTitles) @@ -445,6 +576,10 @@ public class LinqXmlSerialization : IDataManager return null; } + /// + /// Permet d'ajouter des objets Album à l'application + /// + /// Liste d'Album à ajouter public void AddAlbums(List albumsList) { foreach(Album a in albumsList) @@ -453,6 +588,10 @@ public class LinqXmlSerialization : IDataManager } } + /// + /// Permet d'ajouter des objets Artist à l'application + /// + /// Liste d'Artist à ajouter public void AddArtists(List artistsList) { foreach (Artist a in artistsList) @@ -461,6 +600,10 @@ public class LinqXmlSerialization : IDataManager } } + /// + /// Permet d'ajouter des objets Playlist à l'application + /// + /// Liste de Playlist à ajouter public void AddPlaylists(List playlistsList) { foreach (Playlist p in playlistsList) @@ -469,6 +612,10 @@ public class LinqXmlSerialization : IDataManager } } + /// + /// Permet d'ajouter des objets CustomTitle à l'application + /// + /// Liste de CustomTitle à ajouter public void AddCustomTitles(List customTitlesList) { foreach (CustomTitle ct in customTitlesList) @@ -477,6 +624,10 @@ public class LinqXmlSerialization : IDataManager } } + /// + /// Permet d'ajouter des objets InfoTitle à l'application + /// + /// Liste d'InfoTitle à ajouter public void AddInfoTitles(List infoTitlesList) { foreach (InfoTitle it in infoTitlesList) @@ -485,6 +636,11 @@ public class LinqXmlSerialization : IDataManager } } + /// + /// Permet d'obtenir un objet Playlist à partir de son nom + /// + /// Nom de l'objet Playlist + /// Retourne l'objet Playlist avec un nom équivalent à celui donné en paramètre public Playlist GetPlaylistByName(string name) { foreach(Playlist p in playlists) @@ -497,6 +653,14 @@ public class LinqXmlSerialization : IDataManager return null; } + /// + /// Modifie un objet CustomTitle avec les informations données en paramètre + /// + /// CustomTitle à modifier + /// Nom de l'objet CustomTitle + /// Chemin d'accès de l'image de l'objet CustomTitle + /// Informations de l'objet CustomTitle + /// Chemin d'accès de l'objet CustomTitle public void UpdateCustomTitle(CustomTitle title, string name, string url, string info, string path) { title.Name = name; @@ -505,6 +669,14 @@ public class LinqXmlSerialization : IDataManager title.Path = path; } + /// + /// Modifie un objet CustomTitle avec les informations données en paramètre + /// + /// Chemin d'accès du CustomTitle à modifier + /// Nom de l'objet CustomTitle + /// Chemin d'accès de l'image de l'objet CustomTitle + /// Informations de l'objet CustomTitle + /// Chemin d'accès de l'objet CustomTitle public void UpdateCustomTitleByPath(string path, string name, string newUrl, string info, string newPath) { CustomTitle title = GetCustomTitleByPath(path); @@ -517,6 +689,16 @@ public class LinqXmlSerialization : IDataManager } } + /// + /// Modifie un objet InfoTitle avec les informations données en paramètre + /// + /// InfoTitle à modifier + /// Nom de l'objet InfoTitle + /// Chemin d'accès de l'image de l'objet InfoTitle + /// Informations de l'objet InfoTitle + /// Artist de l'objet InfoTitle + /// Description de l'objet InfoTitle + /// Genre de l'objet InfoTitle public void UpdateInfoTitle(InfoTitle title, string name, string url, string info, Artist artist, string description, Genre genre) { title.Name = name; @@ -526,6 +708,15 @@ public class LinqXmlSerialization : IDataManager title.Genre = genre; } + /// + /// Modifie un objet InfoTitle avec les informations données en paramètre + /// + /// Nom de l'objet InfoTitle à modifier + /// Chemin d'accès de l'image de l'objet InfoTitle + /// Informations de l'objet InfoTitle + /// Artist de l'objet InfoTitle + /// Description de l'objet InfoTitle + /// Genre de l'objet InfoTitle public void UpdateInfoTitleByName(string name, string newUrl, string info, Artist artist, string description, Genre genre) { InfoTitle title = GetInfoTitleByName(name); @@ -539,6 +730,15 @@ public class LinqXmlSerialization : IDataManager } } + /// + /// Modifie un objet Album avec les informations données en paramètre + /// + /// Album à modifier + /// Nom de l'objet Album + /// Chemin d'accès de l'image de l'objet Album + /// Artist de l'objet Album + /// Description de l'objet Album + /// Informations de l'objet Album public void UpdateAlbum(Album album, string name, string url, Artist artist, string description, string info) { album.Name = name; @@ -548,6 +748,14 @@ public class LinqXmlSerialization : IDataManager album.Information = info; } + /// + /// Modifie un objet Album avec les informations données en paramètre + /// + /// Nom de l'objet Album à modifier + /// Chemin d'accès de l'image de l'objet Album + /// Artist de l'objet Album + /// Description de l'objet Album + /// Informations de l'objet Album public void UpdateAlbumByName(string name, string newUrl, Artist artist, string description, string info) { Album album = GetAlbumByName(name); @@ -561,6 +769,15 @@ public class LinqXmlSerialization : IDataManager } } + /// + /// Modifie un objet Album avec les informations données en paramètre + /// + /// Album à modifier + /// Nom de l'objet Album + /// Chemin d'accès de l'image de l'objet Album + /// Nom de l'artiste de l'objet Album + /// Description de l'objet Album + /// Informations de l'objet Album public void UpdateAlbumByArtistName(Album album, string name, string url, string artist, string description, string info) { album.Name = name; @@ -574,6 +791,14 @@ public class LinqXmlSerialization : IDataManager album.Information = info; } + /// + /// Modifie un objet Album avec les informations données en paramètre + /// + /// Nom de l'objet Album à modifier + /// Chemin d'accès de l'image de l'objet Album + /// Nom de l'artiste de l'objet Album + /// Description de l'objet Album + /// Informations de l'objet Album public void UpdateAlbumByNameByArtistName(string name, string newUrl, string artist, string description, string info) { Album album = GetAlbumByName(name); @@ -591,6 +816,13 @@ public class LinqXmlSerialization : IDataManager } } + /// + /// Modifie un objet Playlist avec les informations données en paramètre + /// + /// Playlist à modifier + /// Nom de l'objet Playlist + /// Description de l'objet Playlist + /// Chemin d'accès de l'image de l'objet Playlist public void UpdatePlaylist(Playlist playlist, string name, string description, string url) { playlist.Name = name; @@ -598,6 +830,12 @@ public class LinqXmlSerialization : IDataManager playlist.ImageURL = url; } + /// + /// Modifie un objet Playlist avec les informations données en paramètre + /// + /// Nom de l'objet Playlist à modifier + /// Description de l'objet Playlist + /// Chemin d'accès de l'image de l'objet Playlist public void UpdatePlaylistByName(string name, string description, string newUrl) { Playlist playlist = GetPlaylistByName(name); @@ -609,11 +847,21 @@ public class LinqXmlSerialization : IDataManager } } + /// + /// Modifie un objet Artist avec les informations données en paramètre + /// + /// Artiste à modifier + /// Nom de l'objet Artist public void UpdateArtist(Artist artist, string name) { artist.Name = name; } + /// + /// Modifie un objet Artist avec les informations données en paramètre + /// + /// Nom de l'objet Artist à modifier + /// Nouveau nom de l'objet Artist public void UpdateArtistByName(string name, string newName) { Artist artist = GetArtistByName(newName); @@ -623,6 +871,10 @@ public class LinqXmlSerialization : IDataManager } } + /// + /// Permet de retirer des objets Album de l'application + /// + /// Liste des objets Album à retirer de l'application public void RemoveAlbums(List albumsList) { foreach (Album album in albumsList) @@ -631,6 +883,10 @@ public class LinqXmlSerialization : IDataManager } } + /// + /// Permet de retirer des objets Artist de l'application + /// + /// Liste des objets Artist à retirer de l'application public void RemoveArtists(List artistsList) { foreach(Artist artist in artistsList) @@ -639,6 +895,10 @@ public class LinqXmlSerialization : IDataManager } } + /// + /// Permet de retirer des objets Playlist de l'application + /// + /// Liste des objets Playlist à retirer de l'application public void RemovePlaylists(List playlistsList) { foreach (Playlist playlist in playlistsList) @@ -647,6 +907,10 @@ public class LinqXmlSerialization : IDataManager } } + /// + /// Permet de retirer des objets CustomTitle de l'application + /// + /// Liste des objets CustomTitle à retirer de l'application public void RemoveCustomTitles(List customTitlesList) { foreach(CustomTitle customTitle in customTitlesList) @@ -655,6 +919,10 @@ public class LinqXmlSerialization : IDataManager } } + /// + /// Permet de retirer des objets InfoTitle de l'application + /// + /// Liste des objets InfoTitle à retirer de l'application public void RemoveInfoTitles(List infoTitlesList) { foreach (InfoTitle infoTitle in infoTitlesList) @@ -663,6 +931,11 @@ public class LinqXmlSerialization : IDataManager } } + /// + /// Permet de savoir si un objet Playlist appartient ou non à l'application + /// + /// Playlist à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon public bool ExistsPlaylist(Playlist playlist) { foreach(Playlist p in playlists) @@ -675,6 +948,11 @@ public class LinqXmlSerialization : IDataManager return false; } + /// + /// Permet de savoir si un objet Playlist appartient ou non à l'application selon son nom + /// + /// Nom de l'objet Playlist à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon public bool ExistsPlaylistByName(string name) { foreach(Playlist p in playlists) @@ -687,6 +965,11 @@ public class LinqXmlSerialization : IDataManager return false; } + /// + /// Permet de savoir si un objet Album appartient ou non à l'application + /// + /// Album à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon public bool ExistsAlbum(Album album) { foreach(Album a in albums) @@ -699,6 +982,11 @@ public class LinqXmlSerialization : IDataManager return false; } + /// + /// Permet de savoir si un objet Album appartient ou non à l'application selon son nom + /// + /// Nom de l'objet Album à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon public bool ExistsAlbumByName(string name) { foreach(Album a in albums) @@ -711,6 +999,11 @@ public class LinqXmlSerialization : IDataManager return false; } + /// + /// Permet de savoir si un objet Artist appartient ou non à l'application + /// + /// Artist à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon public bool ExistsArtist(Artist artist) { foreach (Artist a in artists) @@ -723,6 +1016,11 @@ public class LinqXmlSerialization : IDataManager return false; } + /// + /// Permet de savoir si un objet Artist appartient ou non à l'application selon son nom + /// + /// Nom de l'objet Artist à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon public bool ExistsArtistByName(string name) { foreach(Artist a in artists) @@ -735,6 +1033,11 @@ public class LinqXmlSerialization : IDataManager return false; } + /// + /// Permet de savoir si un objet CustomTitle appartient ou non à l'application selon son nom + /// + /// Nom de l'objet CustomTitle à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon public bool ExistsCustomTitle(CustomTitle title) { foreach(CustomTitle ct in customTitles) @@ -747,6 +1050,11 @@ public class LinqXmlSerialization : IDataManager return false; } + /// + /// Permet de savoir si un objet CustomTitle appartient ou non à l'application selon son nom + /// + /// Nom de l'objet CustomTitle à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon public bool ExistsCustomTitleByName(string name) { foreach(CustomTitle ct in customTitles) @@ -759,6 +1067,11 @@ public class LinqXmlSerialization : IDataManager return false; } + /// + /// Permet de savoir si un objet InfoTitle appartient ou non à l'application + /// + /// InfoTitle à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon public bool ExistsInfoTitle(InfoTitle title) { foreach(InfoTitle it in infoTitles) @@ -771,6 +1084,11 @@ public class LinqXmlSerialization : IDataManager return false; } + /// + /// Permet de savoir si un objet InfoTitle appartient ou non à l'application selon son nom + /// + /// Nom de l'objet InfoTitle à vérifier + /// Booléen True s'il est contenu dans l'application, False sinon public bool ExistsInfoTitleByName(string name) { foreach(InfoTitle it in infoTitles)