Merge branch 'dev-doxygen'
continuous-integration/drone/push Build is passing Details

pull/39/head
Corentin LEMAIRE 2 years ago
commit 88057275dc

@ -49,11 +49,10 @@ steps:
path: /docs
commands:
- /entrypoint.sh
environment:
NODOXYGEN: true
when:
branch:
- master
- dev-doxygen
event:
- push
- pull_request

@ -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

@ -2,7 +2,12 @@
using System.Collections.ObjectModel;
namespace Model
{
/// <remarks>
/// Classe Album
/// </remarks>
public class Album
{
private static long nbAlbum = 0;
@ -96,6 +101,14 @@ namespace Model
private ObservableCollection<InfoTitle> infoTitles = new ObservableCollection<InfoTitle>();
/// <summary>
/// Constructeur de la classe Album
/// </summary>
/// <param name="name">Nom de l'Album</param>
/// <param name="imageURL">Chemin d'accès de l'image de l'Album</param>
/// <param name="artist">Artiste de l'Album</param>
/// <param name="description">Description de l'Album</param>
/// <param name="information">Informations complémentaires sur un Album</param>
public Album(string name, string imageURL, Artist artist, string description, string information)
{
id = nbAlbum;
@ -106,22 +119,38 @@ namespace Model
Description = description;
Information = information;
}
/// <summary>
/// Constructeur par défaut de la classe Album
/// </summary>
public Album()
{
Artist = new Artist(Manager.DEFAULT_NAME);
}
/// <summary>
/// Permet d'ajouter l'InfoTitle passé en paramètre à la liste
/// </summary>
/// <param name="title">Titre à rajouter à l'album</param>
public void AddTitle(InfoTitle title)
{
infoTitles.Add(title);
}
/// <summary>
/// Permet de supprimer l'InfoTitle passé en paramètre si il est présent dans la liste
/// </summary>
/// <param name="title">Titre à supprimer de l'album</param>
public void RemoveTitle(InfoTitle title)
{
infoTitles.Remove(title);
}
/// <summary>
/// Fonction qui permet de déterminer si deux objets Album sont égaux
/// </summary>
/// <param name="obj">Objet comparé à l'album actuel</param>
/// <returns>Un booléen indiquant si l'objet est égal</returns>
public override bool Equals(object obj)
{
if (obj is null) return false;
@ -130,11 +159,19 @@ namespace Model
else return false;
}
/// <summary>
/// Permet de déterminer le hash d'un objet Album
/// </summary>
/// <returns>Hash de l'attribut Name</returns>
public override int GetHashCode()
{
return ImageURL.GetHashCode();
return Name.GetHashCode();
}
/// <summary>
/// Permet de convertir un objet Album en string
/// </summary>
/// <returns>Une nouvelle chaîne caractères contenant le nom de l'Album et le nom de l'Artist</returns>
public override string ToString()
{
return $"Name : {Name}, Artist : {Artist}";

@ -5,6 +5,10 @@ namespace Model;
public class Artist
{
/// <remarks>
/// Classe Artist
/// </remarks>
public string Name
{
get => name;
@ -20,16 +24,28 @@ public class Artist
private string name = Manager.DEFAULT_NAME;
/// <summary>
/// Constructeur de la classe Artist
/// </summary>
/// <param name="name">Nom de l'artiste</param>
public Artist(string name)
{
Name = name;
}
/// <summary>
/// Constructeur par défaut de la classe Artist
/// </summary>
public Artist()
{
}
/// <summary>
/// Fonction qui permet de déterminer si deux objets Artist sont égaux
/// </summary>
/// <param name="obj"></param>
/// <returns>Un booléen indiquant si l'objet est égal</returns>
public override bool Equals(object obj)
{
if(obj == null) return false;
@ -38,11 +54,19 @@ public class Artist
else return false;
}
/// <summary>
/// Permet de déterminer le hash d'un objet Artist
/// </summary>
/// <returns>Hash de l'attribut Name</returns>
public override int GetHashCode()
{
return Name.GetHashCode();
}
/// <summary>
/// Permet de convertir un objet Artist en string
/// </summary>
/// <returns>Une nouvelle chaîne caractères contenant le nom de l'Artist</returns>
public override string ToString()
{
return $"{Name}";

@ -6,7 +6,10 @@ namespace Model;
public class CustomTitle : Title, INotifyPropertyChanged
{
/// <remarks>
/// Classe CustomTitle
/// </remarks>
public string Path
{
get => path;
@ -68,16 +71,36 @@ public class CustomTitle : Title, INotifyPropertyChanged
private bool isNewPlaylistMenuVisible = false;
/// <summary>
/// Constructeur de la classe Album
/// </summary>
/// <param name="name">Nom du CustomTitle</param>
/// <param name="imageURL">Chemin d'accès de l'image du CustomTitle</param>
/// <param name="information">Informations sur un CustomTitle</param>
/// <param name="path">Chemin d'accès du CustomTitle</param>
public CustomTitle(string name, string imageURL, string information, string path) : base(name, imageURL, information)
{
Path = path;
}
/// <summary>
/// Constructeur par défaut de la classe CustomTitle
/// </summary>
public CustomTitle() : base(Manager.DEFAULT_NAME, Manager.DEFAULT_URL, Manager.DEFAULT_DESC) { }
/// <summary>
/// Fonction qui permet de déterminer si deux objets CustomTitle sont égaux selon leurs chemin d'accès
/// </summary>
/// <param name="other"></param>
/// <returns>Un booléen indiquant si les chemins d'accès sont égaux</returns>
public bool Equals(CustomTitle other)
=> Path.Equals(other?.Path);
/// <summary>
/// Fonction qui permet de déterminer si deux objets CustomTitle sont égaux
/// </summary>
/// <param name="obj"></param>
/// <returns>Un booléen indiquant si l'objet est égal</returns>
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);
}
/// <summary>
/// Permet de déterminer le hash d'un objet CustomTitle
/// </summary>
/// <returns>Hash de l'attribut Path</returns>
public override int GetHashCode()
{
return ImageURL.GetHashCode();
return Path.GetHashCode();
}
/// <summary>
/// Permet de convertir un objet CustomTitle en string
/// </summary>
/// <returns>Une nouvelle chaîne caractères contenant le nom du CustomTitle et le chemin d'accès</returns>
public override string ToString()
{
return $"Name : {Name}, Path : {Path}";

@ -2,6 +2,9 @@
public enum Genre
{
/// <remarks>
/// Enum des diffénres genres référencés.
/// </remarks>
HIP_HOP, POP, ROCK, ELECTRO, CLASSIQUE, JAZZ, VARIETE_FRANCAISE, VARIETE_INTERNATIONALE, REGGAE, RAP, RNB, DISCO, BLUES, COUNTRY, FUNK, GOSPEL,
METAL, K_POP
}

@ -5,119 +5,417 @@ namespace Model;
public interface IDataManager
{
// Create
/// <summary>
/// Permet d'ajouter un objet Album à l'application
/// </summary>
/// <param name="album">Album à ajouter</param>
void AddAlbum(Album album);
/// <summary>
/// Permet d'ajouter des objets Album à l'application
/// </summary>
/// <param name="albumsList">Liste d'Album à ajouter</param>
void AddAlbums(List<Album> albumsList);
/// <summary>
/// Permet d'ajouter un objet Artist à l'application
/// </summary>
/// <param name="artist">Artist à ajouter</param>
void AddArtist(Artist artist);
/// <summary>
/// Permet d'ajouter des objets Artist à l'application
/// </summary>
/// <param name="artistsList">Liste d'Artist à ajouter</param>
void AddArtists(List<Artist> artistsList);
/// <summary>
/// Permet d'ajouter un objet Playlist à l'application
/// </summary>
/// <param name="playlist">Playlist à ajouter</param>
void AddPlaylist(Playlist playlist);
/// <summary>
/// Permet d'ajouter des objets Playlist à l'application
/// </summary>
/// <param name="playlistsList">Liste de Playlist à ajouter</param>
void AddPlaylists(List<Playlist> playlistsList);
/// <summary>
/// Permet d'ajouter un objet CustomTitle à l'application
/// </summary>
/// <param name="title">CustomTitle à ajouter</param>
void AddCustomTitle(CustomTitle title);
/// <summary>
/// Permet d'ajouter des objets CustomTitle à l'application
/// </summary>
/// <param name="customTitlesList">Liste de CustomTitle à ajouter</param>
void AddCustomTitles(List<CustomTitle> customTitlesList);
/// <summary>
/// Permet d'ajouter un objet InfoTitle à l'application
/// </summary>
/// <param name="title">InfoTitle à ajouter</param>
void AddInfoTitle(InfoTitle title);
/// <summary>
/// Permet d'ajouter des objets InfoTitle à l'application
/// </summary>
/// <param name="infoTitlesList">Liste d'InfoTitle à ajouter</param>
void AddInfoTitles(List<InfoTitle> infoTitlesList);
// Read
/// <summary>
/// Permet d'obtenir une liste d'objets CustomTitle
/// </summary>
/// <returns>Retourne une liste d'objets CustomTitle</returns>
ObservableCollection<CustomTitle> GetCustomTitles();
/// <summary>
/// Permet d'obtenir un objet CustomTitle à partir de son chemin d'accès
/// </summary>
/// <param name="custom">Chemin d'accès de l'objet CustomTitle</param>
/// <returns>Retourne l'objet CustomTitle avec un chemin d'accès équivalent à celui donné en paramètre</returns>
CustomTitle GetCustomTitleByPath(string custom);
/// <summary>
/// Permet d'obtenir une liste d'objets InfoTitle
/// </summary>
/// <returns>Retourne une liste d'objets InfoTitle</returns>
ObservableCollection<InfoTitle> GetInfoTitles();
/// <summary>
/// Permet d'obtenir un objet InfoTitle à partir de son nom
/// </summary>
/// <param name="name">Nom de l'objet InfoTitle</param>
/// <returns>Retourne l'objet InfoTitle avec un nom équivalent à celui donné en paramètre</returns>
InfoTitle GetInfoTitleByName(string name);
/// <summary>
/// Permet d'obtenir une liste d'objets Album
/// </summary>
/// <returns>Retourne une liste d'objets Album</returns>
ObservableCollection<Album> GetAlbums();
/// <summary>
/// Permet d'obtenir un objet Album à partir de son nom
/// </summary>
/// <param name="name">Nom de l'objet Album</param>
/// <returns>Retourne l'objet Album avec un nom équivalent à celui donné en paramètre</returns>
Album GetAlbumByName(string name);
/// <summary>
/// Permet d'obtenir un objet Album à partir de son ID
/// </summary>
/// <param name="id">ID de l'objet Album</param>
/// <returns>Retourne l'objet Album avec un ID équivalent à celui donné en paramètre</returns>
Album GetAlbumById(long id);
/// <summary>
/// Permet d'obtenir une liste d'objets Artist
/// </summary>
/// <returns>Retourne une liste d'objets Artist</returns>
List<Artist> GetArtists();
/// <summary>
/// Permet d'obtenir un objet Artist à partir de son nom
/// </summary>
/// <param name="name">Nom de l'objet Artist</param>
/// <returns>Retourne l'objet Artist avec un nom équivalent à celui donné en paramètre</returns>
Artist GetArtistByName(string name);
/// <summary>
/// Permet d'obtenir une liste d'objets Playlist
/// </summary>
/// <returns>Retourne une liste d'objets Playlist</returns>
ObservableCollection<Playlist> GetPlaylists();
/// <summary>
/// Permet d'obtenir un objet Playlist à partir de son nom
/// </summary>
/// <param name="name">Nom de l'objet Playlist</param>
/// <returns>Retourne l'objet Playlist avec un nom équivalent à celui donné en paramètre</returns>
Playlist GetPlaylistByName(string name);
// Update
/// <summary>
/// Modifie un objet CustomTitle avec les informations données en paramètre
/// </summary>
/// <param name="title">CustomTitle à modifier</param>
/// <param name="name">Nom de l'objet CustomTitle</param>
/// <param name="url">Chemin d'accès de l'image de l'objet CustomTitle</param>
/// <param name="info">Informations de l'objet CustomTitle</param>
/// <param name="path">Chemin d'accès de l'objet CustomTitle</param>
void UpdateCustomTitle(CustomTitle title, string name, string url, string info, string path);
/// <summary>
/// Modifie un objet CustomTitle avec les informations données en paramètre
/// </summary>
/// <param name="path">Chemin d'accès du CustomTitle à modifier</param>
/// <param name="name">Nom de l'objet CustomTitle</param>
/// <param name="newUrl">Chemin d'accès de l'image de l'objet CustomTitle</param>
/// <param name="info">Informations de l'objet CustomTitle</param>
/// <param name="newPath">Chemin d'accès de l'objet CustomTitle</param>
void UpdateCustomTitleByPath(string path, string name, string newUrl, string info, string newPath);
/// <summary>
/// Modifie un objet InfoTitle avec les informations données en paramètre
/// </summary>
/// <param name="title">InfoTitle à modifier</param>
/// <param name="name">Nom de l'objet InfoTitle</param>
/// <param name="url">Chemin d'accès de l'image de l'objet InfoTitle</param>
/// <param name="info">Informations de l'objet InfoTitle</param>
/// <param name="artist">Artist de l'objet InfoTitle</param>
/// <param name="description">Description de l'objet InfoTitle</param>
/// <param name="genre">Genre de l'objet InfoTitle</param>
void UpdateInfoTitle(InfoTitle title, string name, string url, string info, Artist artist, string description, Genre genre);
/// <summary>
/// Modifie un objet InfoTitle avec les informations données en paramètre
/// </summary>
/// <param name="name">Nom de l'objet InfoTitle à modifier</param>
/// <param name="newUrl">Chemin d'accès de l'image de l'objet InfoTitle</param>
/// <param name="info">Informations de l'objet InfoTitle</param>
/// <param name="artist">Artist de l'objet InfoTitle</param>
/// <param name="description">Description de l'objet InfoTitle</param>
/// <param name="genre">Genre de l'objet InfoTitle</param>
void UpdateInfoTitleByName(string name, string newUrl, string info, Artist artist, string description, Genre genre);
/// <summary>
/// Modifie un objet Album avec les informations données en paramètre
/// </summary>
/// <param name="album">Album à modifier</param>
/// <param name="name">Nom de l'objet Album</param>
/// <param name="url">Chemin d'accès de l'image de l'objet Album</param>
/// <param name="artist">Artist de l'objet Album</param>
/// <param name="description">Description de l'objet Album</param>
/// <param name="info">Informations de l'objet Album</param>
void UpdateAlbum(Album album, string name, string url, Artist artist, string description, string info);
/// <summary>
/// Modifie un objet Album avec les informations données en paramètre
/// </summary>
/// <param name="name">Nom de l'objet Album à modifier</param>
/// <param name="newUrl">Chemin d'accès de l'image de l'objet Album</param>
/// <param name="artist">Artist de l'objet Album</param>
/// <param name="description">Description de l'objet Album</param>
/// <param name="info">Informations de l'objet Album</param>
void UpdateAlbumByName(string name, string newUrl, Artist artist, string description, string info);
/// <summary>
/// Modifie un objet Album avec les informations données en paramètre
/// </summary>
/// <param name="album">Album à modifier</param>
/// <param name="name">Nom de l'objet Album</param>
/// <param name="url">Chemin d'accès de l'image de l'objet Album</param>
/// <param name="artist">Nom de l'artiste de l'objet Album</param>
/// <param name="description">Description de l'objet Album</param>
/// <param name="info">Informations de l'objet Album</param>
void UpdateAlbumByArtistName(Album album, string name, string url, string artist, string description, string info);
/// <summary>
/// Modifie un objet Album avec les informations données en paramètre
/// </summary>
/// <param name="name">Nom de l'objet Album à modifier</param>
/// <param name="newUrl">Chemin d'accès de l'image de l'objet Album</param>
/// <param name="artist">Nom de l'artiste de l'objet Album</param>
/// <param name="description">Description de l'objet Album</param>
/// <param name="info">Informations de l'objet Album</param>
void UpdateAlbumByNameByArtistName(string name, string newUrl, string artist, string description, string info);
/// <summary>
/// Modifie un objet Playlist avec les informations données en paramètre
/// </summary>
/// <param name="playlist">Playlist à modifier</param>
/// <param name="name">Nom de l'objet Playlist</param>
/// <param name="description">Description de l'objet Playlist</param>
/// <param name="url">Chemin d'accès de l'image de l'objet Playlist</param>
void UpdatePlaylist(Playlist playlist, string name, string description, string url);
/// <summary>
/// Modifie un objet Playlist avec les informations données en paramètre
/// </summary>
/// <param name="name">Nom de l'objet Playlist à modifier</param>
/// <param name="description">Description de l'objet Playlist</param>
/// <param name="newUrl">Chemin d'accès de l'image de l'objet Playlist</param>
void UpdatePlaylistByName(string name, string description, string newUrl);
/// <summary>
/// Modifie un objet Artist avec les informations données en paramètre
/// </summary>
/// <param name="artist">Artiste à modifier</param>
/// <param name="name">Nom de l'objet Artist</param>
void UpdateArtist(Artist artist, string name);
/// <summary>
/// Modifie un objet Artist avec les informations données en paramètre
/// </summary>
/// <param name="name">Nom de l'objet Artist à modifier</param>
/// <param name="newName">Nouveau nom de l'objet Artist</param>
void UpdateArtistByName(string name, string newName);
// Delete
/// <summary>
/// Permet de retirer un objet Album de l'application
/// </summary>
/// <param name="album">Album à retirer</param>
void RemoveAlbum(Album album);
/// <summary>
/// Permet de retirer des objets Album de l'application
/// </summary>
/// <param name="albumsList">Liste des objets Album à retirer de l'application</param>
void RemoveAlbums(List<Album> albumsList);
/// <summary>
/// Permet de retirer un objet Artist de l'application
/// </summary>
/// <param name="artist">Artist à retirer</param>
void RemoveArtist(Artist artist);
/// <summary>
/// Permet de retirer des objets Artist de l'application
/// </summary>
/// <param name="artistsList">Liste des objets Artist à retirer de l'application</param>
void RemoveArtists(List<Artist> artistsList);
/// <summary>
/// Permet de retirer un objet Playlist de l'application
/// </summary>
/// <param name="playlist">Playlist à retirer</param>
void RemovePlaylist(Playlist playlist);
/// <summary>
/// Permet de retirer des objets Playlist de l'application
/// </summary>
/// <param name="playlistsList">Liste des objets Playlist à retirer de l'application</param>
void RemovePlaylists(List<Playlist> playlistsList);
/// <summary>
/// Permet de retirer un objet CustomTitle de l'application
/// </summary>
/// <param name="title">CustomTitle à retirer</param>
void RemoveCustomTitle(CustomTitle title);
/// <summary>
/// Permet de retirer des objets CustomTitle de l'application
/// </summary>
/// <param name="customTitlesList">Liste des objets CustomTitle à retirer de l'application</param>
void RemoveCustomTitles(List<CustomTitle> customTitlesList);
/// <summary>
/// Permet de retirer un objet InfoTitle de l'application
/// </summary>
/// <param name="title">InfoTitle à retirer</param>
void RemoveInfoTitle(InfoTitle title);
/// <summary>
/// Permet de retirer des objets InfoTitle de l'application
/// </summary>
/// <param name="infoTitlesList">Liste des objets InfoTitle à retirer de l'application</param>
void RemoveInfoTitles(List<InfoTitle> infoTitlesList);
// Serialization
/// <summary>
/// Permet de charger les données
/// </summary>
void LoadSerialization();
/// <summary>
/// Permet de sauvegarder l'état de l'application
/// </summary>
void SaveSerialization();
// Exists
/// <summary>
/// Permet de savoir si un objet Playlist appartient ou non à l'application
/// </summary>
/// <param name="playlist">Playlist à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
bool ExistsPlaylist(Playlist playlist);
/// <summary>
/// Permet de savoir si un objet Playlist appartient ou non à l'application selon son nom
/// </summary>
/// <param name="name">Nom de l'objet Playlist à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
bool ExistsPlaylistByName(string name);
/// <summary>
/// Permet de savoir si un objet Album appartient ou non à l'application
/// </summary>
/// <param name="album">Album à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
bool ExistsAlbum(Album album);
/// <summary>
/// Permet de savoir si un objet Album appartient ou non à l'application selon son nom
/// </summary>
/// <param name="name">Nom de l'objet Album à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
bool ExistsAlbumByName(string name);
/// <summary>
/// Permet de savoir si un objet Artist appartient ou non à l'application
/// </summary>
/// <param name="artist">Artist à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
bool ExistsArtist(Artist artist);
/// <summary>
/// Permet de savoir si un objet Artist appartient ou non à l'application selon son nom
/// </summary>
/// <param name="name">Nom de l'objet Artist à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
bool ExistsArtistByName(string name);
/// <summary>
/// Permet de savoir si un objet CustomTitle appartient ou non à l'application selon son nom
/// </summary>
/// <param name="title">Nom de l'objet CustomTitle à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
bool ExistsCustomTitle(CustomTitle title);
/// <summary>
/// Permet de savoir si un objet CustomTitle appartient ou non à l'application selon son nom
/// </summary>
/// <param name="name">Nom de l'objet CustomTitle à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
bool ExistsCustomTitleByName(string name);
/// <summary>
/// Permet de savoir si un objet InfoTitle appartient ou non à l'application
/// </summary>
/// <param name="title">InfoTitle à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
bool ExistsInfoTitle(InfoTitle title);
/// <summary>
/// Permet de savoir si un objet InfoTitle appartient ou non à l'application selon son nom
/// </summary>
/// <param name="name">Nom de l'objet InfoTitle à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
bool ExistsInfoTitleByName(string name);
}

@ -5,6 +5,10 @@ namespace Model;
public class InfoTitle : Title
{
/// <remarks>
/// Classe InfoTitle
/// </remarks>
public string Description
{
get => description;
@ -43,6 +47,15 @@ public class InfoTitle : Title
}
}
/// <summary>
/// Constructeur de la classe InfoTitle
/// </summary>
/// <param name="name">Nom de l'InfoTitle</param>
/// <param name="imageURL">Chemin d'accès de l'image de l'InfoTitle</param>
/// <param name="information">Informations complémentaires sur l'InfoTitle</param>
/// <param name="description">Description de l'InfoTitle</param>
/// <param name="genre">Genre de l'InfoTitle</param>
/// <param name="albumID">ID de l'album auquel appartient l'InfoTitle</param>
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;
}
/// <summary>
/// Constructeur par défaut de la classe InfoTitle
/// </summary>
public InfoTitle() : base(Manager.DEFAULT_NAME, Manager.DEFAULT_URL, Manager.DEFAULT_DESC)
{
}
/// <summary>
/// Ajoute un artiste en tant que Feat de l'InfoTitle
/// </summary>
/// <param name="artist"></param>
public void AddFeat(Artist artist)
{
feat.Add(artist);
}
/// <summary>
/// Enlève un artiste des feats de l'InfoTitle
/// </summary>
/// <param name="artiste"></param>
public void RemoveFeat(Artist artiste)
{
foreach (var item in Feat)
@ -67,6 +92,11 @@ public class InfoTitle : Title
}
}
/// <summary>
/// Fonction qui permet de déterminer si deux objets InfoTitle sont égaux
/// </summary>
/// <param name="obj"></param>
/// <returns>Un booléen indiquant si l'objet est égal</returns>
public override bool Equals(object obj)
{
if (obj is null) return false;
@ -75,11 +105,19 @@ public class InfoTitle : Title
else return false;
}
/// <summary>
/// Permet de déterminer le hash d'un objet InfoTitle
/// </summary>
/// <returns>Hash de l'attribut Name</returns>
public override int GetHashCode()
{
return ImageURL.GetHashCode();
return Name.GetHashCode();
}
/// <summary>
/// Permet de convertir un objet InfoTitle en string
/// </summary>
/// <returns>Une nouvelle chaîne caractères contenant le nom de l'InfoTitle et le chemin d'accès à l'image</returns>
public override string ToString()
{
return $"Name : {Name}, ImageUrl : {ImageURL}";

@ -6,6 +6,10 @@ namespace Model.Stub;
public class Manager : INotifyPropertyChanged
{
/// <remarks>
/// Classe Manager
/// </remarks>
public event PropertyChangedEventHandler PropertyChanged;
public readonly static int MAX_NAME_LENGTH = 75;
@ -140,6 +144,10 @@ public class Manager : INotifyPropertyChanged
}
}
/// <summary>
/// Constructeur de la classe Manager
/// </summary>
/// <param name="dataManager">Méthode de sérialisation, gestionnaire des données</param>
public Manager(IDataManager dataManager)
{
DataManager = dataManager;
@ -158,42 +166,65 @@ public class Manager : INotifyPropertyChanged
LoadDictionaries();
}
/// <summary>
/// Remplis les dictionnaire grâce aux stubs et à LINQ
/// </summary>
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());
}
/// <summary>
/// Actualise le morceau en cours CurrentTitle avec le morceau suivant
/// </summary>
public void NextTitle()
{
if (currentPlaylist == null) return;
currentPlaying = currentPlaylist.NextTitle();
}
/// <summary>
/// Actualise le morceau en cours CurrentTitle avec le morceau précédent
/// </summary>
public void PreviousTitle()
{
if (CurrentPlaying == null) return;
currentPlaying = currentPlaylist.PreviousTitle();
}
/// <summary>
/// Permet de connaître le titre en cours
/// </summary>
/// <returns>Retourne le titre actuel</returns>
public CustomTitle CurrentTitle()
{
if (CurrentPlaylist == null) return null;
return currentPlaylist.GetCurrentTitle();
}
/// <summary>
/// Permet d'activer/désactiver l'option de boucle
/// </summary>
public void Loop()
{
if (CurrentPlaylist == null) return;
currentPlaylist.LoopTitle = !currentPlaylist.LoopTitle;
}
/// <summary>
/// Permet d'activer/désactiver l'option de l'aléatoire
/// </summary>
public void Shuffle()
{
if (CurrentPlaylist == null) return;
currentPlaylist.Shuffle = !currentPlaylist.Shuffle;
}
/// <summary>
/// Permet d'ajouter un Album à l'application
/// </summary>
/// <param name="album">Album à ajouter</param>
public void AddAlbum(Album album)
{
if (GetAlbumByName(album.Name) != null) return;
@ -201,6 +232,10 @@ public class Manager : INotifyPropertyChanged
albums = DataManager.GetAlbums();
}
/// <summary>
/// Permet d'ajouter un CustomTitle à l'application
/// </summary>
/// <param name="title">CustomTitle à ajouter</param>
public void AddCustomTitle(CustomTitle title)
{
if (GetInfoTitleByName(title.Name) != null) return;
@ -208,6 +243,10 @@ public class Manager : INotifyPropertyChanged
customTitles = DataManager.GetCustomTitles();
}
/// <summary>
/// Permet d'ajouter un InfoTitle à l'application
/// </summary>
/// <param name="title">InfoTitle à ajouter</param>
public void AddInfoTitle(InfoTitle title)
{
if (GetInfoTitleByName(title.Name) != null) return;
@ -215,6 +254,10 @@ public class Manager : INotifyPropertyChanged
infoTitles = DataManager.GetInfoTitles();
}
/// <summary>
/// Permet d'ajouter une Playlist à l'application
/// </summary>
/// <param name="playlist">Playlist à ajouter</param>
public void AddPlaylist(Playlist playlist)
{
if (GetPlaylistByName(playlist.Name) != null) return;
@ -222,6 +265,10 @@ public class Manager : INotifyPropertyChanged
playlists = DataManager.GetPlaylists();
}
/// <summary>
/// Permet d'ajouter un Artist à l'application
/// </summary>
/// <param name="artist">Artist à ajouter</param>
public void AddArtist(Artist artist)
{
if (GetArtistByName(artist.Name) != null) return;
@ -229,96 +276,171 @@ public class Manager : INotifyPropertyChanged
artists = DataManager.GetArtists();
}
/// <summary>
/// Permet de retirer un Album de l'application
/// </summary>
/// <param name="album">Album à retirer</param>
public void RemoveAlbum(Album album)
{
DataManager.RemoveAlbum(album);
albums = DataManager.GetAlbums();
}
/// <summary>
/// Permet de retirer un CustomTitle de l'application
/// </summary>
/// <param name="title">CustomTitle à retirer</param>
public void RemoveCustomTitle(CustomTitle title)
{
DataManager.RemoveCustomTitle(title);
customTitles = DataManager.GetCustomTitles();
}
/// <summary>
/// Permet de retirer un InfoTitle de l'application
/// </summary>
/// <param name="title">InfoTitle à retirer</param>
public void RemoveInfoTitle(InfoTitle title)
{
DataManager.RemoveInfoTitle(title);
infoTitles = DataManager.GetInfoTitles();
}
/// <summary>
/// Permet de retirer une Playlist de l'application
/// </summary>
/// <param name="playlist">Playlist à retirer</param>
public void RemovePlaylist(Playlist playlist)
{
DataManager.RemovePlaylist(playlist);
playlists = DataManager.GetPlaylists();
}
/// <summary>
/// Permet d'obtenir la liste des objets Playlist de l'application
/// </summary>
/// <returns>Reourne la liste des objets Playlist de l'application</returns>
public ObservableCollection<Playlist> GetPlaylists()
{
return DataManager.GetPlaylists();
}
/// <summary>
/// Permet d'obtenir la liste des objets Album de l'application
/// </summary>
/// <returns>Reourne la liste des objets Album de l'application</returns>
public ObservableCollection<Album> GetAlbums()
{
return DataManager.GetAlbums();
}
/// <summary>
/// Permet d'obtenir la liste des objets CustomTitle de l'application
/// </summary>
/// <returns>Reourne la liste des objets CustomTitle de l'application</returns>
public ObservableCollection<CustomTitle> GetCustomTitles()
{
return DataManager.GetCustomTitles();
}
/// <summary>
/// Permet d'obtenir la liste des objets InfoTitle de l'application
/// </summary>
/// <returns>Reourne la liste des objets InfoTitle de l'application</returns>
public ObservableCollection<InfoTitle> GetInfoTitles()
{
return DataManager.GetInfoTitles();
}
/// <summary>
/// Permet d'obtenir la liste des objets Artist de l'application
/// </summary>
/// <returns>Reourne la liste des objets Artist de l'application</returns>
public IEnumerable<Artist> GetArtists()
{
return DataManager.GetArtists();
}
/// <summary>
/// Permet de charger l'état sauvegardé précédemment dans l'application
/// </summary>
public void LoadSerialization()
{
DataManager.LoadSerialization();
}
/// <summary>
/// Permet de sauvegarder l'état de l'application
/// </summary>
public void SaveSerialization()
{
DataManager.SaveSerialization();
}
/// <summary>
/// Permet d'obtenir une Playlist selon son nom
/// </summary>
/// <param name="name">Nom de la Playlist</param>
/// <returns>Retourne la Playlist correspondant au nom donné en paramètre</returns>
public Playlist GetPlaylistByName(string name)
{
return DataManager.GetPlaylistByName(name);
}
/// <summary>
/// Permet d'obtenir un Artist selon son nom
/// </summary>
/// <param name="name">Nom de l'Artist</param>
/// <returns>Retourne l'Artist correspondant au nom donné en paramètre</returns>
public Artist GetArtistByName(string name)
{
return DataManager.GetArtistByName(name);
}
/// <summary>
/// Permet d'obtenir un CustomTitle selon son chemin d'accès
/// </summary>
/// <param name="path">Chemin d'accès du CustomTitle</param>
/// <returns>Retourne le CustomTitle correspondant au chemin d'accès donné en paramètre</returns>
public CustomTitle GetCustomTitleByPath(string path)
{
return DataManager.GetCustomTitleByPath(path);
}
/// <summary>
/// Permet d'obtenir un InfoTitle selon son nom
/// </summary>
/// <param name="name">Nom de l'InfoTitle</param>
/// <returns>Retourne l'InfoTitle correspondant au nom donné en paramètre</returns>
public InfoTitle GetInfoTitleByName(string name)
{
return DataManager.GetInfoTitleByName(name);
}
/// <summary>
/// Permet d'obtenir un Album selon son nom
/// </summary>
/// <param name="name">Nom de l'Album</param>
/// <returns>Retourne l'Album correspondant au nom donné en paramètre</returns>
public Album GetAlbumByName(string name)
{
return DataManager.GetAlbumByName(name);
}
/// <summary>
/// Permet d'obtenir un Album selon son ID
/// </summary>
/// <param name="id">ID de l'Album</param>
/// <returns>Retourne l'Album correspondant au ID donné en paramètre</returns>
public Album GetAlbumById(long id)
{
return DataManager.GetAlbumById(id);
}
/// <summary>
/// Permet la notification, et donc l'actualisation des objets connectés à l'événement lorsque la méthode est appelée
/// </summary>
/// <param name="propertyName">Nom de la propriété modifiée</param>
protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
=> PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}

@ -8,6 +8,10 @@ namespace Model;
public class Playlist : INotifyPropertyChanged
{
/// <remarks>
/// Classe Playlist
/// </remarks>
public event PropertyChangedEventHandler PropertyChanged;
public string Name
@ -127,6 +131,12 @@ public class Playlist : INotifyPropertyChanged
private bool isSubMenuVisible;
/// <summary>
/// Constructeur de la classe Playlist
/// </summary>
/// <param name="nom">Nom de la Playlist</param>
/// <param name="description">Description de la Playlist</param>
/// <param name="imageURL">Chemin d'accès de l'image de la Playlist</param>
public Playlist(string nom, string description, string imageURL)
{
Name = nom;
@ -134,18 +144,37 @@ public class Playlist : INotifyPropertyChanged
ImageURL = imageURL;
}
/// <summary>
/// Constructeur par défaut de la Playlist
/// </summary>
public Playlist() { }
/// <summary>
/// Ajoute un titre à la Playlist
/// </summary>
/// <param name="morceau">Morceau à ajouter à la Playlist</param>
public void AddTitle(CustomTitle morceau)
{
titles.Add(morceau);
}
/// <summary>
/// Supprime un titre de la playlist
/// </summary>
/// <param name="morceau">Morceau à supprimer</param>
public void RemoveTitle(CustomTitle morceau)
{
titles.Remove(morceau);
}
/// <summary>
/// Permet de connaître le prochain morceau à jouer dans la playlist
/// </summary>
/// <returns>Retourne le CustomTitle suivant selon les options indiquées par l'utilisateur</returns>
/// 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
}
}
/// <summary>
/// Permet de connaître le titre précédentà jouer dans la playlist
/// </summary>
/// <returns>Retourne le CustomTitle précédent selon les options indiquées par l'utilisateur</returns>
/// 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
}
}
/// <summary>
/// Permet de connaître le morceau actuel de la playlist.
/// </summary>
/// <returns>Retourne le morceau actuel de la playlist</returns>
/// 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
}
/// <summary>
/// Fonction qui permet de déterminer si deux objets Playlist sont égaux
/// </summary>
/// <param name="obj"></param>
/// <returns>Un booléen indiquant si l'objet est égal</returns>
public override bool Equals(object obj)
{
if (obj is null) return false;
@ -222,16 +274,30 @@ public class Playlist : INotifyPropertyChanged
else return false;
}
/// <summary>
/// Permet de déterminer le hash d'un objet Playlist
/// </summary>
/// <returns>Hash de l'attribut Name</returns>
public override int GetHashCode()
{
return ImageURL.GetHashCode();
return Name.GetHashCode();
}
/// <summary>
/// Permet de convertir un objet Playlist en string
/// </summary>
/// <returns>Une nouvelle chaîne caractères contenant le nom de la Playlist</returns>
public override string ToString()
{
return $"Name : {Name}";
}
/// <summary>
/// Permet de générer un nombre entre 0 et n
/// </summary>
/// <param name="n">Limite supérieure du nombre à générer</param>
/// <returns>Retourne un nombre entre 0 et n</returns>
/// 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;
}
/// <summary>
/// Vérifie si la Playlist contient un certain CustomTitle
/// </summary>
/// <param name="customTitle">CustomTitle à vérifier</param>
/// <returns>Booléen True si le CustomTitle est contenu dans la Playlist, False sinon</returns>
public bool HasCustomTitle(CustomTitle customTitle)
{
foreach(CustomTitle custom in Titles)
@ -250,6 +321,10 @@ public class Playlist : INotifyPropertyChanged
return false;
}
/// <summary>
/// Permet la notification, et donc l'actualisation des objets connectés à l'événement lorsque la méthode est appelée
/// </summary>
/// <param name="propertyName">Nom de la propriété modifiée</param>
protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
=> PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}

@ -71,6 +71,10 @@ public class LinqXmlSerialization : IDataManager
}
}
/// <summary>
/// Constructeur de la classe LinqXmlSerialization
/// </summary>
/// <param name="pathDirectory">Chemin d'accès des fichiers de sauvegarde des données</param>
public LinqXmlSerialization(string pathDirectory)
{
XMLPATH = pathDirectory;
@ -89,81 +93,145 @@ public class LinqXmlSerialization : IDataManager
LoadSerialization();
}
/// <summary>
/// Permet d'ajouter un objet Album à l'application
/// </summary>
/// <param name="album">Album à ajouter</param>
public void AddAlbum(Album album)
{
albums.Add(album);
}
/// <summary>
/// Permet d'ajouter un objet Artist à l'application
/// </summary>
/// <param name="artist">Artist à ajouter</param>
public void AddArtist(Artist artist)
{
artists.Add(artist);
}
/// <summary>
/// Permet d'ajouter un objet CustomTitle à l'application
/// </summary>
/// <param name="title">CustomTitle à ajouter</param>
public void AddCustomTitle(CustomTitle title)
{
customTitles.Add(title);
}
/// <summary>
/// Permet d'ajouter un objet InfoTitle à l'application
/// </summary>
/// <param name="title">InfoTitle à ajouter</param>
public void AddInfoTitle(InfoTitle title)
{
infoTitles.Add(title);
}
/// <summary>
/// Permet d'ajouter un objet Playlist à l'application
/// </summary>
/// <param name="playlist">Playlist à ajouter</param>
public void AddPlaylist(Playlist playlist)
{
playlists.Add(playlist);
}
/// <summary>
/// Permet d'obtenir une liste d'objets Album
/// </summary>
/// <returns>Retourne une liste d'objets Album</returns>
public ObservableCollection<Album> GetAlbums()
{
return albums;
}
/// <summary>
/// Permet d'obtenir une liste d'objets Artist
/// </summary>
/// <returns>Retourne une liste d'objets Artist</returns>
public List<Artist> GetArtists()
{
return artists;
}
/// <summary>
/// Permet d'obtenir une liste d'objets CustomTitle
/// </summary>
/// <returns>Retourne une liste d'objets CustomTitle</returns>
public ObservableCollection<CustomTitle> GetCustomTitles()
{
return customTitles;
}
/// <summary>
/// Permet d'obtenir une liste d'objets InfoTitle
/// </summary>
/// <returns>Retourne une liste d'objets InfoTitle</returns>
public ObservableCollection<InfoTitle> GetInfoTitles()
{
return infoTitles;
}
/// <summary>
/// Permet d'obtenir une liste d'objets Playlist
/// </summary>
/// <returns>Retourne une liste d'objets Playlist</returns>
public ObservableCollection<Playlist> GetPlaylists()
{
return playlists;
}
/// <summary>
/// Permet de retirer un objet Album de l'application
/// </summary>
/// <param name="album">Album à retirer</param>
public void RemoveAlbum(Album album)
{
albums.Remove(album);
}
/// <summary>
/// Permet de retirer un objet Artist de l'application
/// </summary>
/// <param name="artist">Artist à retirer</param>
public void RemoveArtist(Artist artist)
{
artists.Remove(artist);
}
/// <summary>
/// Permet de retirer un objet CustomTitle de l'application
/// </summary>
/// <param name="title">CustomTitle à retirer</param>
public void RemoveCustomTitle(CustomTitle title)
{
customTitles.Remove(title);
}
/// <summary>
/// Permet de retirer un objet InfoTitle de l'application
/// </summary>
/// <param name="title">InfoTitle à retirer</param>
public void RemoveInfoTitle(InfoTitle title)
{
infoTitles.Remove(title);
}
/// <summary>
/// Permet de retirer un objet Playlist de l'application
/// </summary>
/// <param name="playlist">Playlist à retirer</param>
public void RemovePlaylist(Playlist playlist)
{
playlists.Remove(playlist);
}
/// <summary>
/// Permet de charger les données
/// </summary>
public void LoadSerialization()
{
LoadArtists();
@ -173,6 +241,9 @@ public class LinqXmlSerialization : IDataManager
LoadPlaylists();
}
/// <summary>
/// Permet de sauvegarder l'état de l'application
/// </summary>
public void SaveSerialization()
{
SaveArtists();
@ -182,6 +253,9 @@ public class LinqXmlSerialization : IDataManager
SaveAlbums();
}
/// <summary>
/// Permet de charger les playlists depuis le fichier correspondant
/// </summary>
public void LoadPlaylists()
{
if (!File.Exists(XMLFILEPLAYLISTS))
@ -246,6 +320,9 @@ public class LinqXmlSerialization : IDataManager
}
}
/// <summary>
/// Permet de sauvegarder les playlists dans le fichier correpondant
/// </summary>
public void SavePlaylists()
{
XDocument PlaylistsFichier = new XDocument();
@ -269,17 +346,26 @@ public class LinqXmlSerialization : IDataManager
}
}
}
/// <summary>
/// Permet de charger les artistes depuis les stubs
/// </summary>
public void LoadArtists()
{
artists = StubInfoTitle.StubAlbum.StubArtist.GetArtists();
}
/// <summary>
/// Permet de sauvegarder les artistes. Ne fais rien car ce sont les stubs qui s'en occupent
/// </summary>
public void SaveArtists()
{
// Don't do anything because it's static data
}
/// <summary>
/// Permet de charger les CustomTitles depuis le fichier de sauvegarde correspondant
/// </summary>
public void LoadCustomTitles()
{
if (!File.Exists(XMLFILECUSTOMS))
@ -317,6 +403,9 @@ public class LinqXmlSerialization : IDataManager
customTitles = new ObservableCollection<CustomTitle>(customTitles2);
}
/// <summary>
/// Permet de sauvegarder les CustomTitles dans le fichier correspondant
/// </summary>
public void SaveCustomTitles()
{
XDocument CustomsFile = new XDocument();
@ -342,16 +431,25 @@ public class LinqXmlSerialization : IDataManager
}
}
/// <summary>
/// Permet de charger les albums depuis les stubs
/// </summary>
public void LoadAlbums()
{
albums = StubInfoTitle.StubAlbum.GetAlbums();
}
/// <summary>
/// Permet de sauvegarder les albums. Ne fais rien car ce sont les stubs qui s'en occupent
/// </summary>
public void SaveAlbums()
{
// Don't do anything because it's static data
}
/// <summary>
/// Permet de charger les InfoTitles depuis les stubs
/// </summary>
public void LoadInfoTitles()
{
infoTitles = StubInfoTitle.GetInfoTitles();
@ -361,11 +459,19 @@ public class LinqXmlSerialization : IDataManager
}
}
/// <summary>
/// Permet de sauvegarder les InfoTitles. Ne fais rien car ce sont les stubs qui s'en occupent
/// </summary>
public void SaveInfoTitles()
{
// Don't do anything because it's static data
}
/// <summary>
/// Permet de passer d'un genre à son nom en chaîne de caractère
/// </summary>
/// <param name="genre">Genre à transformer</param>
/// <returns>Retourne la chaîne de caractère correspondant au genre</returns>
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;
}
/// <summary>
/// Permet d'obtenir un objet InfoTitle à partir de son nom
/// </summary>
/// <param name="name">Nom de l'objet InfoTitle</param>
/// <returns>Retourne l'objet InfoTitle avec un nom équivalent à celui donné en paramètre</returns>
public InfoTitle GetInfoTitleByName(string name)
{
foreach(InfoTitle it in infoTitles)
@ -400,6 +511,11 @@ public class LinqXmlSerialization : IDataManager
return null;
}
/// <summary>
/// Permet d'obtenir un objet Artist à partir de son nom
/// </summary>
/// <param name="name">Nom de l'objet Artist</param>
/// <returns>Retourne l'objet Artist avec un nom équivalent à celui donné en paramètre</returns>
public Artist GetArtistByName(string name)
{
foreach(Artist a in artists)
@ -412,6 +528,11 @@ public class LinqXmlSerialization : IDataManager
return null;
}
/// <summary>
/// Permet d'obtenir un objet Album à partir de son nom
/// </summary>
/// <param name="name">Nom de l'objet Album</param>
/// <returns>Retourne l'objet Album avec un nom équivalent à celui donné en paramètre</returns>
public Album GetAlbumByName(string name)
{
foreach(Album a in albums)
@ -424,6 +545,11 @@ public class LinqXmlSerialization : IDataManager
return null;
}
/// <summary>
/// Permet d'obtenir un objet Album à partir de son ID
/// </summary>
/// <param name="id">ID de l'objet Album</param>
/// <returns>Retourne l'objet Album avec un ID équivalent à celui donné en paramètre</returns>
public Album GetAlbumById(long id)
{
foreach(Album a in albums)
@ -433,6 +559,11 @@ public class LinqXmlSerialization : IDataManager
return null;
}
/// <summary>
/// Permet d'obtenir un objet CustomTitle à partir de son chemin d'accès
/// </summary>
/// <param name="custom">Chemin d'accès de l'objet CustomTitle</param>
/// <returns>Retourne l'objet CustomTitle avec un chemin d'accès équivalent à celui donné en paramètre</returns>
public CustomTitle GetCustomTitleByPath(string custom)
{
foreach(CustomTitle customTitle in customTitles)
@ -445,6 +576,10 @@ public class LinqXmlSerialization : IDataManager
return null;
}
/// <summary>
/// Permet d'ajouter des objets Album à l'application
/// </summary>
/// <param name="albumsList">Liste d'Album à ajouter</param>
public void AddAlbums(List<Album> albumsList)
{
foreach(Album a in albumsList)
@ -453,6 +588,10 @@ public class LinqXmlSerialization : IDataManager
}
}
/// <summary>
/// Permet d'ajouter des objets Artist à l'application
/// </summary>
/// <param name="artistsList">Liste d'Artist à ajouter</param>
public void AddArtists(List<Artist> artistsList)
{
foreach (Artist a in artistsList)
@ -461,6 +600,10 @@ public class LinqXmlSerialization : IDataManager
}
}
/// <summary>
/// Permet d'ajouter des objets Playlist à l'application
/// </summary>
/// <param name="playlistsList">Liste de Playlist à ajouter</param>
public void AddPlaylists(List<Playlist> playlistsList)
{
foreach (Playlist p in playlistsList)
@ -469,6 +612,10 @@ public class LinqXmlSerialization : IDataManager
}
}
/// <summary>
/// Permet d'ajouter des objets CustomTitle à l'application
/// </summary>
/// <param name="customTitlesList">Liste de CustomTitle à ajouter</param>
public void AddCustomTitles(List<CustomTitle> customTitlesList)
{
foreach (CustomTitle ct in customTitlesList)
@ -477,6 +624,10 @@ public class LinqXmlSerialization : IDataManager
}
}
/// <summary>
/// Permet d'ajouter des objets InfoTitle à l'application
/// </summary>
/// <param name="infoTitlesList">Liste d'InfoTitle à ajouter</param>
public void AddInfoTitles(List<InfoTitle> infoTitlesList)
{
foreach (InfoTitle it in infoTitlesList)
@ -485,6 +636,11 @@ public class LinqXmlSerialization : IDataManager
}
}
/// <summary>
/// Permet d'obtenir un objet Playlist à partir de son nom
/// </summary>
/// <param name="name">Nom de l'objet Playlist</param>
/// <returns>Retourne l'objet Playlist avec un nom équivalent à celui donné en paramètre</returns>
public Playlist GetPlaylistByName(string name)
{
foreach(Playlist p in playlists)
@ -497,6 +653,14 @@ public class LinqXmlSerialization : IDataManager
return null;
}
/// <summary>
/// Modifie un objet CustomTitle avec les informations données en paramètre
/// </summary>
/// <param name="title">CustomTitle à modifier</param>
/// <param name="name">Nom de l'objet CustomTitle</param>
/// <param name="url">Chemin d'accès de l'image de l'objet CustomTitle</param>
/// <param name="info">Informations de l'objet CustomTitle</param>
/// <param name="path">Chemin d'accès de l'objet CustomTitle</param>
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;
}
/// <summary>
/// Modifie un objet CustomTitle avec les informations données en paramètre
/// </summary>
/// <param name="path">Chemin d'accès du CustomTitle à modifier</param>
/// <param name="name">Nom de l'objet CustomTitle</param>
/// <param name="newUrl">Chemin d'accès de l'image de l'objet CustomTitle</param>
/// <param name="info">Informations de l'objet CustomTitle</param>
/// <param name="newPath">Chemin d'accès de l'objet CustomTitle</param>
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
}
}
/// <summary>
/// Modifie un objet InfoTitle avec les informations données en paramètre
/// </summary>
/// <param name="title">InfoTitle à modifier</param>
/// <param name="name">Nom de l'objet InfoTitle</param>
/// <param name="url">Chemin d'accès de l'image de l'objet InfoTitle</param>
/// <param name="info">Informations de l'objet InfoTitle</param>
/// <param name="artist">Artist de l'objet InfoTitle</param>
/// <param name="description">Description de l'objet InfoTitle</param>
/// <param name="genre">Genre de l'objet InfoTitle</param>
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;
}
/// <summary>
/// Modifie un objet InfoTitle avec les informations données en paramètre
/// </summary>
/// <param name="name">Nom de l'objet InfoTitle à modifier</param>
/// <param name="newUrl">Chemin d'accès de l'image de l'objet InfoTitle</param>
/// <param name="info">Informations de l'objet InfoTitle</param>
/// <param name="artist">Artist de l'objet InfoTitle</param>
/// <param name="description">Description de l'objet InfoTitle</param>
/// <param name="genre">Genre de l'objet InfoTitle</param>
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
}
}
/// <summary>
/// Modifie un objet Album avec les informations données en paramètre
/// </summary>
/// <param name="album">Album à modifier</param>
/// <param name="name">Nom de l'objet Album</param>
/// <param name="url">Chemin d'accès de l'image de l'objet Album</param>
/// <param name="artist">Artist de l'objet Album</param>
/// <param name="description">Description de l'objet Album</param>
/// <param name="info">Informations de l'objet Album</param>
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;
}
/// <summary>
/// Modifie un objet Album avec les informations données en paramètre
/// </summary>
/// <param name="name">Nom de l'objet Album à modifier</param>
/// <param name="newUrl">Chemin d'accès de l'image de l'objet Album</param>
/// <param name="artist">Artist de l'objet Album</param>
/// <param name="description">Description de l'objet Album</param>
/// <param name="info">Informations de l'objet Album</param>
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
}
}
/// <summary>
/// Modifie un objet Album avec les informations données en paramètre
/// </summary>
/// <param name="album">Album à modifier</param>
/// <param name="name">Nom de l'objet Album</param>
/// <param name="url">Chemin d'accès de l'image de l'objet Album</param>
/// <param name="artist">Nom de l'artiste de l'objet Album</param>
/// <param name="description">Description de l'objet Album</param>
/// <param name="info">Informations de l'objet Album</param>
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;
}
/// <summary>
/// Modifie un objet Album avec les informations données en paramètre
/// </summary>
/// <param name="name">Nom de l'objet Album à modifier</param>
/// <param name="newUrl">Chemin d'accès de l'image de l'objet Album</param>
/// <param name="artist">Nom de l'artiste de l'objet Album</param>
/// <param name="description">Description de l'objet Album</param>
/// <param name="info">Informations de l'objet Album</param>
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
}
}
/// <summary>
/// Modifie un objet Playlist avec les informations données en paramètre
/// </summary>
/// <param name="playlist">Playlist à modifier</param>
/// <param name="name">Nom de l'objet Playlist</param>
/// <param name="description">Description de l'objet Playlist</param>
/// <param name="url">Chemin d'accès de l'image de l'objet Playlist</param>
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;
}
/// <summary>
/// Modifie un objet Playlist avec les informations données en paramètre
/// </summary>
/// <param name="name">Nom de l'objet Playlist à modifier</param>
/// <param name="description">Description de l'objet Playlist</param>
/// <param name="newUrl">Chemin d'accès de l'image de l'objet Playlist</param>
public void UpdatePlaylistByName(string name, string description, string newUrl)
{
Playlist playlist = GetPlaylistByName(name);
@ -609,11 +847,21 @@ public class LinqXmlSerialization : IDataManager
}
}
/// <summary>
/// Modifie un objet Artist avec les informations données en paramètre
/// </summary>
/// <param name="artist">Artiste à modifier</param>
/// <param name="name">Nom de l'objet Artist</param>
public void UpdateArtist(Artist artist, string name)
{
artist.Name = name;
}
/// <summary>
/// Modifie un objet Artist avec les informations données en paramètre
/// </summary>
/// <param name="name">Nom de l'objet Artist à modifier</param>
/// <param name="newName">Nouveau nom de l'objet Artist</param>
public void UpdateArtistByName(string name, string newName)
{
Artist artist = GetArtistByName(newName);
@ -623,6 +871,10 @@ public class LinqXmlSerialization : IDataManager
}
}
/// <summary>
/// Permet de retirer des objets Album de l'application
/// </summary>
/// <param name="albumsList">Liste des objets Album à retirer de l'application</param>
public void RemoveAlbums(List<Album> albumsList)
{
foreach (Album album in albumsList)
@ -631,6 +883,10 @@ public class LinqXmlSerialization : IDataManager
}
}
/// <summary>
/// Permet de retirer des objets Artist de l'application
/// </summary>
/// <param name="artistsList">Liste des objets Artist à retirer de l'application</param>
public void RemoveArtists(List<Artist> artistsList)
{
foreach(Artist artist in artistsList)
@ -639,6 +895,10 @@ public class LinqXmlSerialization : IDataManager
}
}
/// <summary>
/// Permet de retirer des objets Playlist de l'application
/// </summary>
/// <param name="playlistsList">Liste des objets Playlist à retirer de l'application</param>
public void RemovePlaylists(List<Playlist> playlistsList)
{
foreach (Playlist playlist in playlistsList)
@ -647,6 +907,10 @@ public class LinqXmlSerialization : IDataManager
}
}
/// <summary>
/// Permet de retirer des objets CustomTitle de l'application
/// </summary>
/// <param name="customTitlesList">Liste des objets CustomTitle à retirer de l'application</param>
public void RemoveCustomTitles(List<CustomTitle> customTitlesList)
{
foreach(CustomTitle customTitle in customTitlesList)
@ -655,6 +919,10 @@ public class LinqXmlSerialization : IDataManager
}
}
/// <summary>
/// Permet de retirer des objets InfoTitle de l'application
/// </summary>
/// <param name="infoTitlesList">Liste des objets InfoTitle à retirer de l'application</param>
public void RemoveInfoTitles(List<InfoTitle> infoTitlesList)
{
foreach (InfoTitle infoTitle in infoTitlesList)
@ -663,6 +931,11 @@ public class LinqXmlSerialization : IDataManager
}
}
/// <summary>
/// Permet de savoir si un objet Playlist appartient ou non à l'application
/// </summary>
/// <param name="playlist">Playlist à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
public bool ExistsPlaylist(Playlist playlist)
{
foreach(Playlist p in playlists)
@ -675,6 +948,11 @@ public class LinqXmlSerialization : IDataManager
return false;
}
/// <summary>
/// Permet de savoir si un objet Playlist appartient ou non à l'application selon son nom
/// </summary>
/// <param name="name">Nom de l'objet Playlist à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
public bool ExistsPlaylistByName(string name)
{
foreach(Playlist p in playlists)
@ -687,6 +965,11 @@ public class LinqXmlSerialization : IDataManager
return false;
}
/// <summary>
/// Permet de savoir si un objet Album appartient ou non à l'application
/// </summary>
/// <param name="album">Album à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
public bool ExistsAlbum(Album album)
{
foreach(Album a in albums)
@ -699,6 +982,11 @@ public class LinqXmlSerialization : IDataManager
return false;
}
/// <summary>
/// Permet de savoir si un objet Album appartient ou non à l'application selon son nom
/// </summary>
/// <param name="name">Nom de l'objet Album à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
public bool ExistsAlbumByName(string name)
{
foreach(Album a in albums)
@ -711,6 +999,11 @@ public class LinqXmlSerialization : IDataManager
return false;
}
/// <summary>
/// Permet de savoir si un objet Artist appartient ou non à l'application
/// </summary>
/// <param name="artist">Artist à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
public bool ExistsArtist(Artist artist)
{
foreach (Artist a in artists)
@ -723,6 +1016,11 @@ public class LinqXmlSerialization : IDataManager
return false;
}
/// <summary>
/// Permet de savoir si un objet Artist appartient ou non à l'application selon son nom
/// </summary>
/// <param name="name">Nom de l'objet Artist à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
public bool ExistsArtistByName(string name)
{
foreach(Artist a in artists)
@ -735,6 +1033,11 @@ public class LinqXmlSerialization : IDataManager
return false;
}
/// <summary>
/// Permet de savoir si un objet CustomTitle appartient ou non à l'application selon son nom
/// </summary>
/// <param name="title">Nom de l'objet CustomTitle à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
public bool ExistsCustomTitle(CustomTitle title)
{
foreach(CustomTitle ct in customTitles)
@ -747,6 +1050,11 @@ public class LinqXmlSerialization : IDataManager
return false;
}
/// <summary>
/// Permet de savoir si un objet CustomTitle appartient ou non à l'application selon son nom
/// </summary>
/// <param name="name">Nom de l'objet CustomTitle à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
public bool ExistsCustomTitleByName(string name)
{
foreach(CustomTitle ct in customTitles)
@ -759,6 +1067,11 @@ public class LinqXmlSerialization : IDataManager
return false;
}
/// <summary>
/// Permet de savoir si un objet InfoTitle appartient ou non à l'application
/// </summary>
/// <param name="title">InfoTitle à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
public bool ExistsInfoTitle(InfoTitle title)
{
foreach(InfoTitle it in infoTitles)
@ -771,6 +1084,11 @@ public class LinqXmlSerialization : IDataManager
return false;
}
/// <summary>
/// Permet de savoir si un objet InfoTitle appartient ou non à l'application selon son nom
/// </summary>
/// <param name="name">Nom de l'objet InfoTitle à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
public bool ExistsInfoTitleByName(string name)
{
foreach(InfoTitle it in infoTitles)

@ -22,6 +22,9 @@ public class StubAlbum
private readonly ObservableCollection<Album> albums;
/// <summary>
/// Constructeur de la classe StubAlbum
/// </summary>
public StubAlbum()
{
stubArtist = new StubArtist();
@ -44,10 +47,20 @@ public class StubAlbum
};
}
/// <summary>
/// Permet d'obtenir la liste des albums
/// </summary>
/// <returns>Retourne la liste des albums</returns>
public ObservableCollection<Album> GetAlbums()
{
return albums;
}
/// <summary>
/// Permet d'obtenir un album selon son nom
/// </summary>
/// <param name="name">Nom de l'album recherché</param>
/// <returns>Retourne l'album correspondant au nom donné en paramètre</returns>
public Album GetAlbumByName(string name)
{
foreach(Album album in albums)
@ -59,10 +72,20 @@ public class StubAlbum
}
return null;
}
/// <summary>
/// Permet d'ajouter un album à la liste des albums
/// </summary>
/// <param name="album">Album à ajouter</param>
public void AddAlbum(Album album)
{
albums.Add(album);
}
/// <summary>
/// Permet de retirer un album de la liste des albums
/// </summary>
/// <param name="album">Album à retirer</param>
public void RemoveAlbum(Album album)
{
albums.Remove(album);

@ -9,6 +9,9 @@ public class StubArtist
private readonly List<Artist> artists;
/// <summary>
/// Constructeur de la classe StubArtist
/// </summary>
public StubArtist()
{
artists = new List<Artist>()
@ -23,10 +26,20 @@ public class StubArtist
};
}
/// <summary>
/// Permet d'obtenir la liste des artistes
/// </summary>
/// <returns>Retourne la liste des artistes</returns>
public List<Artist> GetArtists()
{
return artists;
}
/// <summary>
/// Permet d'obtenir un artiste selon son nom
/// </summary>
/// <param name="name">Nom de l'artiste recherché</param>
/// <returns>Retourne l'artiste correspondant au nom donné en paramètre</returns>
public Artist GetArtistByName(string name)
{
foreach (var artist in artists)
@ -38,10 +51,20 @@ public class StubArtist
}
return null;
}
/// <summary>
/// Permet d'ajouter un artiste à la liste des artistes
/// </summary>
/// <param name="artist">Artiste à ajouter</param>
public void AddArtist(Artist artist)
{
artists.Add(artist);
}
/// <summary>
/// Permet de retirer un artiste de la liste des artistes
/// </summary>
/// <param name="artist">Artiste à retirer</param>
public void RemoveArtist(Artist artist)
{
artists.Remove(artist);

@ -12,6 +12,9 @@ public class StubCustomTitle
private readonly ObservableCollection<CustomTitle> customTitles;
/// <summary>
/// Constructeur de la classe StubCustomTitle
/// </summary>
public StubCustomTitle()
{
CustomTitle Custom1 = new CustomTitle("MaMusique", "mp3.png", "info1", "chemin1");
@ -32,10 +35,20 @@ public class StubCustomTitle
};
}
/// <summary>
/// Permet d'obtenir la liste des CustomTitle
/// </summary>
/// <returns>Retourne la liste des CustomTitle</returns>
public ObservableCollection<CustomTitle> GetCustomTitles()
{
return customTitles;
}
/// <summary>
/// Permet d'obtenir une liste de CustomTitle selon les noms donnés en paramètre
/// </summary>
/// <param name="names">Liste des noms des CustomTitle recherchés</param>
/// <returns>Retourne la liste des CustomTitle correspondant aux noms donnés en paramètre</returns>
public List<CustomTitle> GetCustomTitlesByNames(List<string> names)
{
List<CustomTitle> Customs = new List<CustomTitle>();
@ -51,10 +64,20 @@ public class StubCustomTitle
}
return Customs;
}
/// <summary>
/// Permet d'ajouter un CustomTitle à la liste des CustomTitle
/// </summary>
/// <param name="customTitle">CustomTitle à ajouter</param>
public void AddCustomTitle(CustomTitle customTitle)
{
customTitles.Add(customTitle);
}
/// <summary>
/// Permet de retirer un CustomTitle de la liste des CustomTitle
/// </summary>
/// <param name="customTitle">CustomTitle à retirer</param>
public void RemoveCustomTitle(CustomTitle customTitle)
{
customTitles.Remove(customTitle);

@ -21,6 +21,9 @@ public class StubInfoTitle
private readonly ObservableCollection<InfoTitle> infoTitles;
/// <summary>
/// Constructeur de la classe StubInfoTitle
/// </summary>
public StubInfoTitle()
{
stubAlbum = new StubAlbum();
@ -273,10 +276,20 @@ public class StubInfoTitle
};
}
/// <summary>
/// Permet d'obtenir une liste des InfoTitle
/// </summary>
/// <returns>Retourne une liste des InfoTitle</returns>
public ObservableCollection<InfoTitle> GetInfoTitles()
{
return infoTitles;
}
/// <summary>
/// Permet d'obtenir des InfoTitle selon les noms donnés en paramètre
/// </summary>
/// <param name="names">Liste des noms des InfoTitle recherchés</param>
/// <returns>Retourne la liste des InfoTitle correspondant aux noms passés en paramètre</returns>
public List<InfoTitle> GetInfoTitlesByNames(List<string> names)
{
List<InfoTitle> infos = new List<InfoTitle>();
@ -292,18 +305,40 @@ public class StubInfoTitle
}
return infos;
}
/// <summary>
/// Permet d'ajouter un InfoTitle à la liste des InfoTitle
/// </summary>
/// <param name="title">InfoTitle à ajouter</param>
public void AddInfoTitle(InfoTitle title)
{
infoTitles.Add(title);
}
/// <summary>
/// Permet de retirer un InfoTitle de la liste des InfoTitle
/// </summary>
/// <param name="title">InfoTitle à retirer</param>
public void RemoveInfoTitle(InfoTitle title)
{
infoTitles.Remove(title);
}
/// <summary>
/// Permet d'ajouter un artiste à la liste des feat d'un InfoTitle
/// </summary>
/// <param name="infoTitle">InfoTitle dans lequel ajouter le feat</param>
/// <param name="artist">Artist à ajouter dans la liste des feats de l'InfoTitle</param>
public static void AddFeat(InfoTitle infoTitle, Artist artist)
{
infoTitle.AddFeat(artist);
}
/// <summary>
/// Permet de retirer un artiste de la liste des feat d'un InfoTitle
/// </summary>
/// <param name="infoTitle">InfoTitle depuis lequel retirer le feat</param>
/// <param name="artist">Artist à retirer de la liste des feats de l'InfoTitle</param>
public static void RemoveFeat(InfoTitle infoTitle, Artist artist)
{
infoTitle.RemoveFeat(artist);

@ -56,6 +56,9 @@ public class StubManager : IDataManager
private readonly StubPlaylist stubPlaylist;
/// <summary>
/// Constructeut de la classe StubManager
/// </summary>
public StubManager()
{
stubInfoTitle = new StubInfoTitle();
@ -66,88 +69,155 @@ public class StubManager : IDataManager
LoadSerialization();
}
/// <summary>
/// Permet d'obtenir la liste des albums
/// </summary>
/// <returns>Retourne la liste des albums</returns>
public ObservableCollection<Album> GetAlbums()
{
return StubAlbum.GetAlbums();
}
/// <summary>
/// Permet d'obtenir la liste des artistes
/// </summary>
/// <returns>Retourne la liste des artistes</returns>
public List<Artist> GetArtists()
{
return StubArtist.GetArtists();
}
/// <summary>
/// Permet d'obtenir la liste des playlists
/// </summary>
/// <returns>Retourne la liste des playlists</returns>
public ObservableCollection<Playlist> GetPlaylists()
{
return StubPlaylist.GetPlaylists();
}
/// <summary>
/// Permet d'obtenir la liste des CustomTitles
/// </summary>
/// <returns>Retourne la liste des CustomTitles</returns>
public ObservableCollection<CustomTitle> GetCustomTitles()
{
return StubCustomTitle.GetCustomTitles();
}
/// <summary>
/// Permet d'obtenir la liste des InfoTitles
/// </summary>
/// <returns>Retourne la liste des InfoTitles</returns>
public ObservableCollection<InfoTitle> GetInfoTitles()
{
return StubInfoTitle.GetInfoTitles();
}
/// <summary>
/// Permet d'ajouter un objet Album à l'application
/// </summary>
/// <param name="album">Album à ajouter</param>
public void AddAlbum(Album album)
{
StubAlbum.AddAlbum(album);
}
/// <summary>
/// Permet d'ajouter un objet CustomTitle à l'application
/// </summary>
/// <param name="title">CustomTitle à ajouter</param>
public void AddCustomTitle(CustomTitle title)
{
StubCustomTitle.AddCustomTitle(title);
}
/// <summary>
/// Permet d'ajouter un objet InfoTitle à l'application
/// </summary>
/// <param name="title">InfoTitle à ajouter</param>
public void AddInfoTitle(InfoTitle title)
{
StubInfoTitle.AddInfoTitle(title);
}
/// <summary>
/// Permet d'ajouter un artiste à la liste des feat d'un InfoTitle
/// </summary>
/// <param name="infoTitle">InfoTitle dans lequel ajouter le feat</param>
/// <param name="artist">Artist à ajouter dans la liste des feats de l'InfoTitle</param>
public static void AddFeat(InfoTitle infoTitle, Artist artist)
{
StubInfoTitle.AddFeat(infoTitle, artist);
}
/// <summary>
/// Permet d'ajouter un objet Playlist à l'application
/// </summary>
/// <param name="playlist">Playlist à ajouter</param>
public void AddPlaylist(Playlist playlist)
{
StubPlaylist.AddPlaylist(playlist);
}
/// <summary>
/// Permet d'ajouter un objet Artist à l'application
/// </summary>
/// <param name="artist">Artist à ajouter</param>
public void AddArtist(Artist artist)
{
StubArtist.AddArtist(artist);
}
/// <summary>
/// Permet de retirer un objet Album de l'application
/// </summary>
/// <param name="album">Album à retirer</param>
public void RemoveAlbum(Album album)
{
StubAlbum.RemoveAlbum(album);
}
/// <summary>
/// Permet de retirer un objet CustomTitle de l'application
/// </summary>
/// <param name="title">CustomTitle à retirer</param>
public void RemoveCustomTitle(CustomTitle title)
{
StubCustomTitle.RemoveCustomTitle(title);
}
/// <summary>
/// Permet de retirer un objet InfoTitle de l'application
/// </summary>
/// <param name="title">InfoTitle à retirer</param>
public void RemoveInfoTitle(InfoTitle title)
{
StubInfoTitle.RemoveInfoTitle(title);
}
/// <summary>
/// Permet de retirer un objet Playlist de l'application
/// </summary>
/// <param name="playlist">Playlist à retirer</param>
public void RemovePlaylist(Playlist playlist)
{
StubPlaylist.RemovePlaylist(playlist);
}
/// <summary>
/// Permet de retirer un objet Artist de l'application
/// </summary>
/// <param name="artist">Artist à retirer</param>
public void RemoveArtist(Artist artist)
{
StubArtist.RemoveArtist(artist);
}
/// <summary>
/// Permet de charger les données
/// </summary>
public void LoadSerialization()
{
foreach(InfoTitle infoTitle in StubInfoTitle.InfoTitles)
@ -156,11 +226,19 @@ public class StubManager : IDataManager
}
}
/// <summary>
/// Permet de sauvegarder l'état de l'application
/// </summary>
public void SaveSerialization()
{
// Doesn't do anything because it's Stubs
}
/// <summary>
/// Permet d'obtenir un objet CustomTitle à partir de son chemin d'accès
/// </summary>
/// <param name="custom">Chemin d'accès de l'objet CustomTitle</param>
/// <returns>Retourne l'objet CustomTitle avec un chemin d'accès équivalent à celui donné en paramètre</returns>
public CustomTitle GetCustomTitleByPath(string custom)
{
foreach (CustomTitle customTitle in StubCustomTitle.GetCustomTitles())
@ -173,6 +251,11 @@ public class StubManager : IDataManager
return null;
}
/// <summary>
/// Permet d'obtenir un objet InfoTitle à partir de son nom
/// </summary>
/// <param name="name">Nom de l'objet InfoTitle</param>
/// <returns>Retourne l'objet InfoTitle avec un nom équivalent à celui donné en paramètre</returns>
public InfoTitle GetInfoTitleByName(string name)
{
foreach(InfoTitle title in StubInfoTitle.GetInfoTitles())
@ -185,6 +268,11 @@ public class StubManager : IDataManager
return null;
}
/// <summary>
/// Permet d'obtenir un objet Album à partir de son nom
/// </summary>
/// <param name="name">Nom de l'objet Album</param>
/// <returns>Retourne l'objet Album avec un nom équivalent à celui donné en paramètre</returns>
public Album GetAlbumByName(string name)
{
foreach(Album album in StubAlbum.GetAlbums())
@ -197,6 +285,11 @@ public class StubManager : IDataManager
return null;
}
/// <summary>
/// Permet d'obtenir un objet Artist à partir de son nom
/// </summary>
/// <param name="name">Nom de l'objet Artist</param>
/// <returns>Retourne l'objet Artist avec un nom équivalent à celui donné en paramètre</returns>
public Artist GetArtistByName(string name)
{
foreach(Artist artist in StubArtist.GetArtists())
@ -209,6 +302,10 @@ public class StubManager : IDataManager
return null;
}
/// <summary>
/// Permet d'ajouter des objets Album à l'application
/// </summary>
/// <param name="albumsList">Liste d'Album à ajouter</param>
public void AddAlbums(List<Album> albumsList)
{
foreach (Album a in albumsList)
@ -217,6 +314,10 @@ public class StubManager : IDataManager
}
}
/// <summary>
/// Permet d'ajouter des objets Artist à l'application
/// </summary>
/// <param name="artistsList">Liste d'Artist à ajouter</param>
public void AddArtists(List<Artist> artistsList)
{
foreach (Artist a in artistsList)
@ -225,6 +326,10 @@ public class StubManager : IDataManager
}
}
/// <summary>
/// Permet d'ajouter des objets Playlist à l'application
/// </summary>
/// <param name="playlistsList">Liste de Playlist à ajouter</param>
public void AddPlaylists(List<Playlist> playlistsList)
{
foreach (Playlist p in playlistsList)
@ -233,6 +338,10 @@ public class StubManager : IDataManager
}
}
/// <summary>
/// Permet d'ajouter des objets CustomTitle à l'application
/// </summary>
/// <param name="customTitlesList">Liste de CustomTitle à ajouter</param>
public void AddCustomTitles(List<CustomTitle> customTitlesList)
{
foreach (CustomTitle ct in customTitlesList)
@ -241,6 +350,10 @@ public class StubManager : IDataManager
}
}
/// <summary>
/// Permet d'ajouter des objets InfoTitle à l'application
/// </summary>
/// <param name="infoTitlesList">Liste d'InfoTitle à ajouter</param>
public void AddInfoTitles(List<InfoTitle> infoTitlesList)
{
foreach (InfoTitle it in infoTitlesList)
@ -249,6 +362,11 @@ public class StubManager : IDataManager
}
}
/// <summary>
/// Permet d'obtenir un objet Playlist à partir de son nom
/// </summary>
/// <param name="name">Nom de l'objet Playlist</param>
/// <returns>Retourne l'objet Playlist avec un nom équivalent à celui donné en paramètre</returns>
public Playlist GetPlaylistByName(string name)
{
foreach (Playlist p in StubPlaylist.Playlists)
@ -261,6 +379,14 @@ public class StubManager : IDataManager
return null;
}
/// <summary>
/// Modifie un objet CustomTitle avec les informations données en paramètre
/// </summary>
/// <param name="title">CustomTitle à modifier</param>
/// <param name="name">Nom de l'objet CustomTitle</param>
/// <param name="url">Chemin d'accès de l'image de l'objet CustomTitle</param>
/// <param name="info">Informations de l'objet CustomTitle</param>
/// <param name="path">Chemin d'accès de l'objet CustomTitle</param>
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;
}
/// <summary>
/// Modifie un objet CustomTitle avec les informations données en paramètre
/// </summary>
/// <param name="path">Chemin d'accès du CustomTitle à modifier</param>
/// <param name="name">Nom de l'objet CustomTitle</param>
/// <param name="newUrl">Chemin d'accès de l'image de l'objet CustomTitle</param>
/// <param name="info">Informations de l'objet CustomTitle</param>
/// <param name="newPath">Chemin d'accès de l'objet CustomTitle</param>
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
}
}
/// <summary>
/// Modifie un objet InfoTitle avec les informations données en paramètre
/// </summary>
/// <param name="title">InfoTitle à modifier</param>
/// <param name="name">Nom de l'objet InfoTitle</param>
/// <param name="url">Chemin d'accès de l'image de l'objet InfoTitle</param>
/// <param name="info">Informations de l'objet InfoTitle</param>
/// <param name="artist">Artist de l'objet InfoTitle</param>
/// <param name="description">Description de l'objet InfoTitle</param>
/// <param name="genre">Genre de l'objet InfoTitle</param>
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;
}
/// <summary>
/// Modifie un objet InfoTitle avec les informations données en paramètre
/// </summary>
/// <param name="name">Nom de l'objet InfoTitle à modifier</param>
/// <param name="newUrl">Chemin d'accès de l'image de l'objet InfoTitle</param>
/// <param name="info">Informations de l'objet InfoTitle</param>
/// <param name="artist">Artist de l'objet InfoTitle</param>
/// <param name="description">Description de l'objet InfoTitle</param>
/// <param name="genre">Genre de l'objet InfoTitle</param>
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
}
}
/// <summary>
/// Modifie un objet Album avec les informations données en paramètre
/// </summary>
/// <param name="album">Album à modifier</param>
/// <param name="name">Nom de l'objet Album</param>
/// <param name="url">Chemin d'accès de l'image de l'objet Album</param>
/// <param name="artist">Artist de l'objet Album</param>
/// <param name="description">Description de l'objet Album</param>
/// <param name="info">Informations de l'objet Album</param>
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;
}
/// <summary>
/// Modifie un objet Album avec les informations données en paramètre
/// </summary>
/// <param name="name">Nom de l'objet Album à modifier</param>
/// <param name="newUrl">Chemin d'accès de l'image de l'objet Album</param>
/// <param name="artist">Artist de l'objet Album</param>
/// <param name="description">Description de l'objet Album</param>
/// <param name="info">Informations de l'objet Album</param>
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
}
}
/// <summary>
/// Modifie un objet Album avec les informations données en paramètre
/// </summary>
/// <param name="album">Album à modifier</param>
/// <param name="name">Nom de l'objet Album</param>
/// <param name="url">Chemin d'accès de l'image de l'objet Album</param>
/// <param name="artist">Nom de l'artiste de l'objet Album</param>
/// <param name="description">Description de l'objet Album</param>
/// <param name="info">Informations de l'objet Album</param>
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;
}
/// <summary>
/// Modifie un objet Album avec les informations données en paramètre
/// </summary>
/// <param name="name">Nom de l'objet Album à modifier</param>
/// <param name="newUrl">Chemin d'accès de l'image de l'objet Album</param>
/// <param name="artist">Nom de l'artiste de l'objet Album</param>
/// <param name="description">Description de l'objet Album</param>
/// <param name="info">Informations de l'objet Album</param>
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
}
}
/// <summary>
/// Modifie un objet Playlist avec les informations données en paramètre
/// </summary>
/// <param name="playlist">Playlist à modifier</param>
/// <param name="name">Nom de l'objet Playlist</param>
/// <param name="description">Description de l'objet Playlist</param>
/// <param name="url">Chemin d'accès de l'image de l'objet Playlist</param>
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;
}
/// <summary>
/// Modifie un objet Playlist avec les informations données en paramètre
/// </summary>
/// <param name="name">Nom de l'objet Playlist à modifier</param>
/// <param name="description">Description de l'objet Playlist</param>
/// <param name="newUrl">Chemin d'accès de l'image de l'objet Playlist</param>
public void UpdatePlaylistByName(string name, string description, string newUrl)
{
Playlist playlist = GetPlaylistByName(name);
@ -373,11 +573,21 @@ public class StubManager : IDataManager
}
}
/// <summary>
/// Modifie un objet Artist avec les informations données en paramètre
/// </summary>
/// <param name="artist">Artiste à modifier</param>
/// <param name="name">Nom de l'objet Artist</param>
public void UpdateArtist(Artist artist, string name)
{
artist.Name = name;
}
/// <summary>
/// Modifie un objet Artist avec les informations données en paramètre
/// </summary>
/// <param name="name">Nom de l'objet Artist à modifier</param>
/// <param name="newName">Nouveau nom de l'objet Artist</param>
public void UpdateArtistByName(string name, string newName)
{
Artist artist = GetArtistByName(newName);
@ -387,6 +597,10 @@ public class StubManager : IDataManager
}
}
/// <summary>
/// Permet de retirer des objets Album de l'application
/// </summary>
/// <param name="albumsList">Liste des objets Album à retirer de l'application</param>
public void RemoveAlbums(List<Album> albumsList)
{
foreach (Album album in albumsList)
@ -395,6 +609,10 @@ public class StubManager : IDataManager
}
}
/// <summary>
/// Permet de retirer des objets Artist de l'application
/// </summary>
/// <param name="artistsList">Liste des objets Artist à retirer de l'application</param>
public void RemoveArtists(List<Artist> artistsList)
{
foreach (Artist artist in artistsList)
@ -403,6 +621,10 @@ public class StubManager : IDataManager
}
}
/// <summary>
/// Permet de retirer des objets Playlist de l'application
/// </summary>
/// <param name="playlistsList">Liste des objets Playlist à retirer de l'application</param>
public void RemovePlaylists(List<Playlist> playlistsList)
{
foreach (Playlist playlist in playlistsList)
@ -411,6 +633,10 @@ public class StubManager : IDataManager
}
}
/// <summary>
/// Permet de retirer des objets CustomTitle de l'application
/// </summary>
/// <param name="customTitlesList">Liste des objets CustomTitle à retirer de l'application</param>
public void RemoveCustomTitles(List<CustomTitle> customTitlesList)
{
foreach (CustomTitle customTitle in customTitlesList)
@ -419,6 +645,10 @@ public class StubManager : IDataManager
}
}
/// <summary>
/// Permet de retirer des objets InfoTitle de l'application
/// </summary>
/// <param name="infoTitlesList">Liste des objets InfoTitle à retirer de l'application</param>
public void RemoveInfoTitles(List<InfoTitle> infoTitlesList)
{
foreach (InfoTitle infoTitle in infoTitlesList)
@ -427,6 +657,11 @@ public class StubManager : IDataManager
}
}
/// <summary>
/// Permet de savoir si un objet Playlist appartient ou non à l'application
/// </summary>
/// <param name="playlist">Playlist à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
public bool ExistsPlaylist(Playlist playlist)
{
foreach (Playlist p in StubPlaylist.Playlists)
@ -439,6 +674,11 @@ public class StubManager : IDataManager
return false;
}
/// <summary>
/// Permet de savoir si un objet Playlist appartient ou non à l'application selon son nom
/// </summary>
/// <param name="name">Nom de l'objet Playlist à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
public bool ExistsPlaylistByName(string name)
{
foreach (Playlist p in StubPlaylist.Playlists)
@ -451,6 +691,11 @@ public class StubManager : IDataManager
return false;
}
/// <summary>
/// Permet de savoir si un objet Album appartient ou non à l'application
/// </summary>
/// <param name="album">Album à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
public bool ExistsAlbum(Album album)
{
foreach (Album a in StubAlbum.Albums)
@ -463,6 +708,11 @@ public class StubManager : IDataManager
return false;
}
/// <summary>
/// Permet de savoir si un objet Album appartient ou non à l'application selon son nom
/// </summary>
/// <param name="name">Nom de l'objet Album à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
public bool ExistsAlbumByName(string name)
{
foreach (Album a in StubAlbum.Albums)
@ -475,6 +725,11 @@ public class StubManager : IDataManager
return false;
}
/// <summary>
/// Permet de savoir si un objet Artist appartient ou non à l'application
/// </summary>
/// <param name="artist">Artist à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
public bool ExistsArtist(Artist artist)
{
foreach (Artist a in StubArtist.Artists)
@ -487,6 +742,11 @@ public class StubManager : IDataManager
return false;
}
/// <summary>
/// Permet de savoir si un objet Artist appartient ou non à l'application selon son nom
/// </summary>
/// <param name="name">Nom de l'objet Artist à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
public bool ExistsArtistByName(string name)
{
foreach (Artist a in StubArtist.Artists)
@ -499,6 +759,11 @@ public class StubManager : IDataManager
return false;
}
/// <summary>
/// Permet de savoir si un objet CustomTitle appartient ou non à l'application selon son nom
/// </summary>
/// <param name="title">Nom de l'objet CustomTitle à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
public bool ExistsCustomTitle(CustomTitle title)
{
foreach (CustomTitle ct in StubCustomTitle.CustomTitles)
@ -511,6 +776,11 @@ public class StubManager : IDataManager
return false;
}
/// <summary>
/// Permet de savoir si un objet CustomTitle appartient ou non à l'application selon son nom
/// </summary>
/// <param name="name">Nom de l'objet CustomTitle à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
public bool ExistsCustomTitleByName(string name)
{
foreach (CustomTitle ct in StubCustomTitle.CustomTitles)
@ -523,6 +793,11 @@ public class StubManager : IDataManager
return false;
}
/// <summary>
/// Permet de savoir si un objet InfoTitle appartient ou non à l'application
/// </summary>
/// <param name="title">InfoTitle à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
public bool ExistsInfoTitle(InfoTitle title)
{
foreach (InfoTitle it in StubInfoTitle.InfoTitles)
@ -535,6 +810,11 @@ public class StubManager : IDataManager
return false;
}
/// <summary>
/// Permet de savoir si un objet InfoTitle appartient ou non à l'application selon son nom
/// </summary>
/// <param name="name">Nom de l'objet InfoTitle à vérifier</param>
/// <returns>Booléen True s'il est contenu dans l'application, False sinon</returns>
public bool ExistsInfoTitleByName(string name)
{
foreach (InfoTitle it in StubInfoTitle.InfoTitles)
@ -547,6 +827,11 @@ public class StubManager : IDataManager
return false;
}
/// <summary>
/// Permet d'obtenir un objet Album à partir de son ID
/// </summary>
/// <param name="id">ID de l'objet Album</param>
/// <returns>Retourne l'objet Album avec un ID équivalent à celui donné en paramètre</returns>
public Album GetAlbumById(long id)
{
foreach(Album album in StubAlbum.Albums)

@ -12,6 +12,9 @@ public class StubPlaylist
private readonly ObservableCollection<Playlist> playlists;
/// <summary>
/// Constructeur de la classe StubPlaylist
/// </summary>
public StubPlaylist()
{
Playlist Playlist1 = new Playlist("Playlist1", "desc1", "url1.png");
@ -29,10 +32,20 @@ public class StubPlaylist
};
}
/// <summary>
/// Permet d'obtenir la liste des Playlist
/// </summary>
/// <returns>Retourne la liste des Playlist</returns>
public ObservableCollection<Playlist> GetPlaylists()
{
return playlists;
}
/// <summary>
/// Permet d'obtenir une Playlist selon son nom
/// </summary>
/// <param name="name">Nom de la Playlist recherchée</param>
/// <returns>Retourne la Playlist correspondant au nom donné en paramètre</returns>
public Playlist GetPlaylistByName(string name)
{
foreach(var playlist in playlists)
@ -44,10 +57,20 @@ public class StubPlaylist
}
return null;
}
/// <summary>
/// Permet d'ajouter une Playlist à la liste des Playlist
/// </summary>
/// <param name="playlist"></param>
public void AddPlaylist(Playlist playlist)
{
playlists.Add(playlist);
}
/// <summary>
/// Permet de retirer une Playlist de la liste des Playlist
/// </summary>
/// <param name="playlist"></param>
public void RemovePlaylist(Playlist playlist)
{
playlists.Remove(playlist);

@ -7,6 +7,9 @@ namespace Model;
public class Title
{
/// <remarks>
/// Classe Title
/// </remarks>
public event PropertyChangedEventHandler PropertyChanged;
@ -64,6 +67,12 @@ public class Title
private string information = Manager.DEFAULT_DESC;
/// <summary>
/// Constructeur de la classe Title
/// </summary>
/// <param name="nom">Nom du Title</param>
/// <param name="file_Name">Chemin d'accès de l'image du Title</param>
/// <param name="informations">Informations sur le Title</param>
public Title(string nom, string file_Name, string informations)
{
Name = nom;
@ -71,6 +80,11 @@ public class Title
Information = informations;
}
/// <summary>
/// Fonction qui permet de déterminer si deux objets Title sont égaux
/// </summary>
/// <param name="obj"></param>
/// <returns>Un booléen indiquant si l'objet est égal</returns>
public override bool Equals(object obj)
{
if (obj is null) return false;
@ -79,16 +93,28 @@ public class Title
else return false;
}
/// <summary>
/// Permet de déterminer le hash d'un objet Title
/// </summary>
/// <returns>Hash de l'attribut Name</returns>
public override int GetHashCode()
{
return ImageURL.GetHashCode();
return Name.GetHashCode();
}
/// <summary>
/// Permet de convertir un objet Title en string
/// </summary>
/// <returns>Une nouvelle chaîne caractères contenant le nom du Title</returns>
public override string ToString()
{
return $"Name : {Name}";
}
/// <summary>
/// Permet la notification, et donc l'actualisation des objets connectés à l'événement lorsque la méthode est appelée
/// </summary>
/// <param name="propertyName">Nom de la propriété modifiée</param>
protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
=> PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}

Loading…
Cancel
Save