diff --git a/Sources/Console/Program.cs b/Sources/Console/Program.cs index 5a4730d..dec48a1 100644 --- a/Sources/Console/Program.cs +++ b/Sources/Console/Program.cs @@ -21,15 +21,101 @@ Manager.AddPlaylist(new Playlist("MegaTeuf", "DescPlaylist", "ImagePlaylist")); Playlist p1 = Manager.Playlists.First(); -Console.WriteLine(p1.GetCurrentTitle()); +Title? current = p1.GetCurrentTitle(); +Console.WriteLine(current?.Name); p1.NextTitle(); +current = p1.GetCurrentTitle(); +Console.WriteLine(current?.Name); -Console.WriteLine(p1.GetCurrentTitle()); +p1.PreviousTitle(); +current = p1.GetCurrentTitle(); +Console.WriteLine(current?.Name); + +p1.Loop = true; +p1.AddTitle(new CustomTitle("Nouveau", "img.png", "infos", "path.mp3")); +p1.Shuffle = true; +Console.WriteLine("--------------------"); + +p1.NextTitle(); +current = p1.GetCurrentTitle(); +Console.WriteLine(current?.Name); +p1.NextTitle(); +current = p1.GetCurrentTitle(); +Console.WriteLine(current?.Name); +p1.NextTitle(); +current = p1.GetCurrentTitle(); +Console.WriteLine(current?.Name); +p1.NextTitle(); +current = p1.GetCurrentTitle(); +Console.WriteLine(current?.Name); +p1.NextTitle(); +current = p1.GetCurrentTitle(); +Console.WriteLine(current?.Name); + +Console.WriteLine("--------------------"); + +p1.PreviousTitle(); +current = p1.GetCurrentTitle(); +Console.WriteLine(current?.Name); +p1.PreviousTitle(); +current = p1.GetCurrentTitle(); +Console.WriteLine(current?.Name); p1.PreviousTitle(); +current = p1.GetCurrentTitle(); +Console.WriteLine(current?.Name); +p1.PreviousTitle(); +current = p1.GetCurrentTitle(); +Console.WriteLine(current?.Name); +p1.PreviousTitle(); +current = p1.GetCurrentTitle(); +Console.WriteLine(current?.Name); -Console.WriteLine(p1.GetCurrentTitle()); +Console.WriteLine("--------------------"); + +p1.NextTitle(); +current = p1.GetCurrentTitle(); +Console.WriteLine(current?.Name); +p1.NextTitle(); +current = p1.GetCurrentTitle(); +Console.WriteLine(current?.Name); + +// Quand aléatoire et que retour arrière puis retour avant, musique aléatoire et non celle de base + +Console.WriteLine("--------------------"); + +p1.PreviousTitle(); +current = p1.GetCurrentTitle(); +Console.WriteLine(current?.Name); +p1.PreviousTitle(); +current = p1.GetCurrentTitle(); +Console.WriteLine(current?.Name); +p1.PreviousTitle(); +current = p1.GetCurrentTitle(); +Console.WriteLine(current?.Name); +p1.PreviousTitle(); +current = p1.GetCurrentTitle(); +Console.WriteLine(current?.Name); +p1.PreviousTitle(); +current = p1.GetCurrentTitle(); +Console.WriteLine(current?.Name); + +p1.PreviousTitle(); +current = p1.GetCurrentTitle(); +Console.WriteLine(current?.Name); +p1.PreviousTitle(); +current = p1.GetCurrentTitle(); +Console.WriteLine(current?.Name); +p1.PreviousTitle(); +current = p1.GetCurrentTitle(); +Console.WriteLine(current?.Name); +p1.PreviousTitle(); +current = p1.GetCurrentTitle(); +Console.WriteLine(current?.Name); +p1.PreviousTitle(); +current = p1.GetCurrentTitle(); +Console.WriteLine(current?.Name); diff --git a/Sources/Model/IDataManager.cs b/Sources/Model/IDataManager.cs index c21b2c5..34fbb0f 100644 --- a/Sources/Model/IDataManager.cs +++ b/Sources/Model/IDataManager.cs @@ -2,13 +2,13 @@ public interface IDataManager { - IEnumerable GetTitles(); + List<Title> GetTitles(); - IEnumerable<Album> GetAlbums(); + List<Album> GetAlbums(); - IEnumerable<Artist> GetArtists(); + List<Artist> GetArtists(); - IEnumerable<Playlist> GetPlaylists(); + List<Playlist> GetPlaylists(); public void AddAlbum(Album album); diff --git a/Sources/Model/Manager.cs b/Sources/Model/Manager.cs index ae75df9..e6f11e9 100644 --- a/Sources/Model/Manager.cs +++ b/Sources/Model/Manager.cs @@ -1,75 +1,107 @@ -namespace Model.Stub; - -public class Manager -{ - public IDataManager DataManager { get; set; } - - public IEnumerable<Album> Albums; - - public IEnumerable<Title> Titles; - - public IEnumerable<Playlist> Playlists; - - public IEnumerable<Artist> Artists; - - public Manager() - { - DataManager = new Stub(); - - Albums = DataManager.GetAlbums(); - Titles = DataManager.GetTitles(); - Playlists = DataManager.GetPlaylists(); - Artists = DataManager.GetArtists(); - } - - public void AddAlbum(Album album) - { - DataManager.AddAlbum(album); - Albums = DataManager.GetAlbums(); - } - - public void AddTitle(Title title) - { - DataManager.AddTitle(title); - Titles = DataManager.GetTitles(); - } - public void AddPlaylist(Playlist playlist) - { - DataManager.AddPlaylist(playlist); - Playlists = DataManager.GetPlaylists(); - } - - public void RemoveAlbum(Album album) - { - DataManager.RemoveAlbum(album); - Albums = DataManager.GetAlbums(); - } - - public void RemoveTitle(Title title) - { - DataManager.RemoveTitle(title); - Titles = DataManager.GetTitles(); - } - - public void RemovePlaylist(Playlist playlist) - { - DataManager.RemovePlaylist(playlist); - Playlists = DataManager.GetPlaylists(); - } - +namespace Model.Stub; + +public class Manager +{ + public IDataManager DataManager { get; set; } + + private List<Album> albums = new List<Album>(); + + public IEnumerable<Album> Albums + { + get + { + return albums; + } + } + + private List<Title> titles = new List<Title>(); + + public IEnumerable<Title> Titles + { + get + { + return titles; + } + } + + private List<Playlist> playlists = new List<Playlist>(); + + public IEnumerable<Playlist> Playlists + { + get + { + return playlists; + } + } + + private List<Artist> artists = new List<Artist>(); + + public IEnumerable<Artist> Artists + { + get + { + return artists; + } + } + + public Manager() + { + DataManager = new Stub(); + + albums = DataManager.GetAlbums(); + titles = DataManager.GetTitles(); + playlists = DataManager.GetPlaylists(); + artists = DataManager.GetArtists(); + } + + public void AddAlbum(Album album) + { + DataManager.AddAlbum(album); + albums = DataManager.GetAlbums(); + } + + public void AddTitle(Title title) + { + DataManager.AddTitle(title); + titles = DataManager.GetTitles(); + } + public void AddPlaylist(Playlist playlist) + { + DataManager.AddPlaylist(playlist); + playlists = DataManager.GetPlaylists(); + } + + public void RemoveAlbum(Album album) + { + DataManager.RemoveAlbum(album); + albums = DataManager.GetAlbums(); + } + + public void RemoveTitle(Title title) + { + DataManager.RemoveTitle(title); + titles = DataManager.GetTitles(); + } + + public void RemovePlaylist(Playlist playlist) + { + DataManager.RemovePlaylist(playlist); + playlists = DataManager.GetPlaylists(); + } + public IEnumerable<Album> GetAlbums() { return DataManager.GetAlbums(); - } - + } + public IEnumerable<Title> GetTitles() { return DataManager.GetTitles(); - } - + } + public IEnumerable<Artist> GetArtists() { return DataManager.GetArtists(); - } - -} + } + +} diff --git a/Sources/Model/Playlist.cs b/Sources/Model/Playlist.cs index 29f798b..53265b7 100644 --- a/Sources/Model/Playlist.cs +++ b/Sources/Model/Playlist.cs @@ -128,7 +128,7 @@ public class Playlist } else { - Index = Aleatoire.Next(morceaux.Count() - 1); + Index = Aleatoire.Next(morceaux.Count()); played.Add(Index); } } @@ -143,7 +143,7 @@ public class Playlist if(!Shuffle) { Index--; - played.RemoveAt(0); + played.RemoveAt(played.Count - 1); } else { @@ -151,14 +151,14 @@ public class Playlist { return; } - Index = played[0]; - played.RemoveAt(0); + Index = played[played.Count - 1]; + played.RemoveAt(played.Count - 1); } } public Title? GetCurrentTitle() { - if (Index < morceaux.Count() - 1) + if (Index < morceaux.Count()) { return morceaux[Index]; } diff --git a/Sources/Model/Stub/Stub.cs b/Sources/Model/Stub/Stub.cs index 2b4b96b..672bdd4 100644 --- a/Sources/Model/Stub/Stub.cs +++ b/Sources/Model/Stub/Stub.cs @@ -1,142 +1,174 @@ -namespace Model.Stub; - -public class Stub : IDataManager -{ - - public IEnumerable<Artist> Artists; - - public IEnumerable<Album> Albums; - - public IEnumerable<Playlist> Playlists; - - public IEnumerable<Title> Titles; - - public Stub() - { - Artist Artiste1 = new Artist("Critien"); - Artist Artiste2 = new Artist("Gouriet"); - Artist Artiste3 = new Artist("Poulifer"); - Artist Artiste4 = new Artist("Credian"); - - Album Album1 = new Album("la street", "lastreet.png", Artiste1, "c'est la street", "plein d'infos1"); - Album Album2 = new Album("la jsp", "oui.png", Artiste1, "c'est la couri", "plein d'infos2"); - Album Album3 = new Album("la pas le temps", "non.png", Artiste3, "c'est pas la street", "plein d'infos3"); - Album Album4 = new Album("la pas le choix", "peutetre.png", Artiste4, "c'est la parterre", "plein d'infos4"); - - Artiste1.AddAlbum(Album1); - Artiste1.AddAlbum(Album2); - Artiste2.AddAlbum(Album3); - Artiste2.AddAlbum(Album4); - - Playlist Playlist1 = new Playlist("Playlist1", "desc1", "url1.png"); - Playlist Playlist2 = new Playlist("Playlist2", "desc2", "url2.png"); - - CustomTitle Custom1 = new CustomTitle("custom1", "url1.png", "info1", "chemin1"); - CustomTitle Custom2 = new CustomTitle("custom2", "url2.png", "info2", "chemin2"); - CustomTitle Custom3 = new CustomTitle("custom3", "url3.png", "info3", "chemin3"); - - Playlist1.AddTitle(Custom1); - Playlist1.AddTitle(Custom2); - Playlist2.AddTitle(Custom2); - Playlist2.AddTitle(Custom3); - - InfoTitle Info1 = new InfoTitle("info1", "url1.png", "info1", Artiste2, "desc1", Genre.K_POP); - InfoTitle Info2 = new InfoTitle("info2", "url2.png", "info2", Artiste3, "desc2", Genre.GOSPEL); - - Album1.AddTitle(Info1); - Album1.AddTitle(Info2); - Album2.AddTitle(Info2); - - Artists = new List<Artist>() +namespace Model.Stub; + +public class Stub : IDataManager +{ + + private List<Artist> artists = new List<Artist>(); + + public IEnumerable<Artist> Artists + { + get + { + return artists; + } + } + + private List<Album> albums = new List<Album>(); + + public IEnumerable<Album> Albums + { + get + { + return albums; + } + } + + private List<Playlist> playlists = new List<Playlist>(); + + public IEnumerable<Playlist> Playlists + { + get + { + return playlists; + } + } + + private List<Title> titles = new List<Title>(); + + public IEnumerable<Title> Titles + { + get + { + return titles; + } + } + + public Stub() + { + Artist Artiste1 = new Artist("Critien"); + Artist Artiste2 = new Artist("Gouriet"); + Artist Artiste3 = new Artist("Poulifer"); + Artist Artiste4 = new Artist("Credian"); + + Album Album1 = new Album("la street", "lastreet.png", Artiste1, "c'est la street", "plein d'infos1"); + Album Album2 = new Album("la jsp", "oui.png", Artiste1, "c'est la couri", "plein d'infos2"); + Album Album3 = new Album("la pas le temps", "non.png", Artiste3, "c'est pas la street", "plein d'infos3"); + Album Album4 = new Album("la pas le choix", "peutetre.png", Artiste4, "c'est la parterre", "plein d'infos4"); + + Artiste1.AddAlbum(Album1); + Artiste1.AddAlbum(Album2); + Artiste2.AddAlbum(Album3); + Artiste2.AddAlbum(Album4); + + Playlist Playlist1 = new Playlist("Playlist1", "desc1", "url1.png"); + Playlist Playlist2 = new Playlist("Playlist2", "desc2", "url2.png"); + + CustomTitle Custom1 = new CustomTitle("MaMusique", "url1.png", "info1", "chemin1"); + CustomTitle Custom2 = new CustomTitle("MusiqueGeniale", "url2.png", "info2", "chemin2"); + CustomTitle Custom3 = new CustomTitle("custom3", "url3.png", "info3", "chemin3"); + + Playlist1.AddTitle(Custom1); + Playlist1.AddTitle(Custom2); + Playlist2.AddTitle(Custom2); + Playlist2.AddTitle(Custom3); + + InfoTitle Info1 = new InfoTitle("info1", "url1.png", "info1", Artiste2, "desc1", Genre.K_POP); + InfoTitle Info2 = new InfoTitle("info2", "url2.png", "info2", Artiste3, "desc2", Genre.GOSPEL); + + Album1.AddTitle(Info1); + Album1.AddTitle(Info2); + Album2.AddTitle(Info2); + + artists = new List<Artist>() { Artiste1, Artiste2, Artiste3, Artiste4 - }; - - Albums = new List<Album>() + }; + + albums = new List<Album>() { Album1, Album2, Album3, Album4 - }; - - Playlists = new List<Playlist>() + }; + + playlists = new List<Playlist>() { Playlist1, Playlist2 - }; - - Titles = new List<Title>() + }; + + titles = new List<Title>() { Custom1, Custom2, Custom3, Info1, Info2 - }; + }; + } + + public List<Album> GetAlbums() + { + return albums; + } + + public List<Artist> GetArtists() + { + return artists; } - public IEnumerable<Album> GetAlbums() + public List<Playlist> GetPlaylists() { - return Albums; + return playlists; } - public IEnumerable<Artist> GetArtists() + public List<Title> GetTitles() { - return Artists; + return titles; } - public IEnumerable<Playlist> GetPlaylists() + public void AddAlbum(Album album) { - return Playlists; + albums.Add(album); } - public IEnumerable<Title> GetTitles() + public void AddTitle(Title title) { - return Titles; + titles.Add(title); + } + public void AddPlaylist(Playlist playlist) + { + playlists.Add(playlist); } - public void AddAlbum(Album album) - { - Albums = Albums.Prepend(album); - } - - public void AddTitle(Title title) - { - Titles = Titles.Prepend(title); - } - public void AddPlaylist(Playlist playlist) - { - Playlists = Playlists.Prepend(playlist); - } - public void AddArtist(Artist artist) { - Artists = Artists.Prepend(artist); - } - - - - public void RemoveAlbum(Album album) - { - Albums.ToList().Remove(album); - } - - public void RemoveTitle(Title title) - { - Titles.ToList().Remove(title); - } - - public void RemovePlaylist(Playlist playlist) - { - Playlists.ToList().Remove(playlist); + artists.Add(artist); + } + + + + public void RemoveAlbum(Album album) + { + albums.Remove(album); + } + + public void RemoveTitle(Title title) + { + titles.Remove(title); + } + + public void RemovePlaylist(Playlist playlist) + { + playlists.Remove(playlist); } public void RemoveArtist(Artist artist) { - Artists.ToList().Remove(artist); + artists.Remove(artist); } -} +}