diff --git a/.drone.yml b/.drone.yml
index 7c67229..ac474fb 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -49,11 +49,10 @@ steps:
path: /docs
commands:
- /entrypoint.sh
- environment:
- NODOXYGEN: true
when:
branch:
- master
+ - dev-doxygen
event:
- push
- pull_request
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
diff --git a/Sources/Model/Album.cs b/Sources/Model/Album.cs
index 15cdca4..f7e29c2 100644
--- a/Sources/Model/Album.cs
+++ b/Sources/Model/Album.cs
@@ -2,7 +2,12 @@
using System.Collections.ObjectModel;
namespace Model
+
{
+ ///
+ /// Classe Album
+ ///
+
public class Album
{
private static long nbAlbum = 0;
@@ -96,6 +101,14 @@ namespace Model
private ObservableCollection infoTitles = new ObservableCollection();
+ ///
+ /// 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;
@@ -106,22 +119,38 @@ 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
+ ///
+ /// 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);
}
+ ///
+ /// 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)
{
if (obj is null) return false;
@@ -130,11 +159,19 @@ namespace Model
else return false;
}
+ ///
+ /// Permet de déterminer le hash d'un objet Album
+ ///
+ /// 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'Artist
public override string ToString()
{
return $"Name : {Name}, Artist : {Artist}";
diff --git a/Sources/Model/Artist.cs b/Sources/Model/Artist.cs
index a97b7fe..84b7f6f 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;
@@ -20,16 +24,28 @@ 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()
{
}
+ ///
+ /// 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 +54,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..23c433f 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;
@@ -68,16 +71,36 @@ 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) { }
+ ///
+ /// 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 +109,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/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 fd4ea14..4905cf9 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;
@@ -43,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;
@@ -50,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)
@@ -67,6 +92,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 +105,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/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 1aa251b..346cfa6 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
@@ -127,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;
@@ -134,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;
@@ -168,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();
@@ -200,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;
@@ -214,6 +261,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,16 +274,30 @@ 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}";
}
+ ///
+ /// 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();
@@ -241,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)
@@ -250,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/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)
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 a002a64..46ad0f7 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);
diff --git a/Sources/Model/Title.cs b/Sources/Model/Title.cs
index bd977e6..cde0bd3 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;
@@ -64,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;
@@ -71,6 +80,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,16 +93,28 @@ 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}";
}
+ ///
+ /// 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));
}