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 GetTitles();
- IEnumerable GetAlbums();
+ List GetAlbums();
- IEnumerable GetArtists();
+ List GetArtists();
- IEnumerable GetPlaylists();
+ List 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 Albums;
-
- public IEnumerable Titles;
-
- public IEnumerable Playlists;
-
- public IEnumerable 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 albums = new List();
+
+ public IEnumerable Albums
+ {
+ get
+ {
+ return albums;
+ }
+ }
+
+ private List titles = new List();
+
+ public IEnumerable Titles
+ {
+ get
+ {
+ return titles;
+ }
+ }
+
+ private List playlists = new List();
+
+ public IEnumerable Playlists
+ {
+ get
+ {
+ return playlists;
+ }
+ }
+
+ private List artists = new List();
+
+ public IEnumerable 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 GetAlbums()
{
return DataManager.GetAlbums();
- }
-
+ }
+
public IEnumerable GetTitles()
{
return DataManager.GetTitles();
- }
-
+ }
+
public IEnumerable 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 Artists;
-
- public IEnumerable Albums;
-
- public IEnumerable Playlists;
-
- public IEnumerable 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()
+namespace Model.Stub;
+
+public class Stub : IDataManager
+{
+
+ private List artists = new List();
+
+ public IEnumerable Artists
+ {
+ get
+ {
+ return artists;
+ }
+ }
+
+ private List albums = new List();
+
+ public IEnumerable Albums
+ {
+ get
+ {
+ return albums;
+ }
+ }
+
+ private List playlists = new List();
+
+ public IEnumerable Playlists
+ {
+ get
+ {
+ return playlists;
+ }
+ }
+
+ private List titles = new List();
+
+ public IEnumerable 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()
{
Artiste1,
Artiste2,
Artiste3,
Artiste4
- };
-
- Albums = new List()
+ };
+
+ albums = new List()
{
Album1,
Album2,
Album3,
Album4
- };
-
- Playlists = new List()
+ };
+
+ playlists = new List()
{
Playlist1,
Playlist2
- };
-
- Titles = new List()
+ };
+
+ titles = new List()
{
Custom1,
Custom2,
Custom3,
Info1,
Info2
- };
+ };
+ }
+
+ public List GetAlbums()
+ {
+ return albums;
+ }
+
+ public List GetArtists()
+ {
+ return artists;
}
- public IEnumerable GetAlbums()
+ public List GetPlaylists()
{
- return Albums;
+ return playlists;
}
- public IEnumerable GetArtists()
+ public List GetTitles()
{
- return Artists;
+ return titles;
}
- public IEnumerable GetPlaylists()
+ public void AddAlbum(Album album)
{
- return Playlists;
+ albums.Add(album);
}
- public IEnumerable 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);
}
-}
+}