Enchance Model and Stub

pull/17/head
Corentin LEMAIRE 2 years ago
parent e4a0c77f0c
commit 9d207ce782

@ -1,24 +1,35 @@
using Model;
using Model.Stub;
Manager Manager = new Manager();
// See https://aka.ms/new-console-template for more information
foreach(Album Album in Manager.GetAlbums())
{
Console.WriteLine(Album.Name);
}
/*Album a = new Album("Adios Bahamas", "album1.jpg", "Népal");
Album a1 = new Album("Fenêtre sur Rue", "album3.jpg", "HugoTSR");
Album a2 = new Album("Dans la Légende", "album8.jpg", "PNL");
Console.WriteLine("---------------");
List<Album> lst = new List<Album> { a1, a2, a };
Manager.AddAlbum(new Album("coucou", "path.png", new Artist("lorenzo"), "descLolo", "infoLolo"));
foreach (Album album in lst)
foreach (Album Album in Manager.GetAlbums())
{
Console.WriteLine($"Nom de l'album : " + album.Nom);
Console.WriteLine(Album.Name);
}
Manager.AddPlaylist(new Playlist("MegaTeuf", "DescPlaylist", "ImagePlaylist"));
Playlist p1 = Manager.Playlists.First();
Console.WriteLine(p1.GetCurrentTitle());
p1.NextTitle();
Console.WriteLine($"Nom du fichier : " + album.File_Name);
Console.WriteLine(p1.GetCurrentTitle());
Console.WriteLine($"Artiste : " + album.Artiste);
p1.PreviousTitle();
Console.WriteLine($"-------------------------");
}*/
Console.WriteLine(p1.GetCurrentTitle());

@ -19,7 +19,7 @@ public partial class FooterPage : ContentView
// (s,a) = convention, s = sender, a = arguments, si appli fermée, on free tout
outputDevice.PlaybackStopped += PlaybackStoppedHandler;
morceauEnCours = "D:\\Musique\\Création\\winter.mp3";
morceauEnCours = "peaches.mp3";
audioFile = new AudioFileReader(morceauEnCours);
outputDevice.Init(audioFile);
}

@ -45,7 +45,8 @@
<MauiFont Include="Resources\Fonts\*" />
<!-- Raw Assets (also remove the "Resources\Raw" prefix) -->
<MauiAsset Include="Resources\Raw\**" LogicalName="%(RecursiveDir)%(Filename)%(Extension)" />
<MauiAsset Include="Resources\Raw\*" LogicalName="%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>
<ItemGroup>

@ -15,7 +15,7 @@
}
}
private string name;
private string name ="Unknown";
public string Description
{
@ -30,9 +30,17 @@
}
}
private string description;
private string description ="";
public IEnumerable<Title> Titles { get; set; }
private List<Title> titles = new List<Title>();
public IEnumerable<Title> Titles
{
get
{
return Titles;
}
}
public string ImageURL
{
@ -47,9 +55,9 @@
}
}
private string imageURL;
private string imageURL = "none.png";
public Artiste Artist { get; set; }
public Artist Artist { get; set; }
public string Information
{
@ -64,28 +72,27 @@
}
}
private string information;
private string information = "";
public Album(string name, string file_Name, Artiste artist, string description, string information)
public Album(string name, string file_Name, Artist artist, string description, string information)
{
Name = name;
ImageURL = file_Name;
Artist = artist;
Description = description;
Information = information;
Titles = new List<Title>();
}
public void AddTitle(Title title)
{
Titles.Prepend(title);
titles.Add(title);
}
public void RemoveTitle(Title title)
{
foreach(var item in Titles)
foreach(var item in titles)
{
Titles = Titles.Where(item => item != title).ToList();
titles = titles.Where(item => item != title).ToList();
}
}

@ -0,0 +1,39 @@
namespace Model;
public class Artist
{
public string Name
{
get => name;
set
{
if (value != null && value.Length < 75)
{
name = value;
}
}
}
private string name = "Unknown";
private List<Album> albums = new List<Album>();
public IEnumerable<Album> Albums
{
get
{
return albums;
}
}
public Artist(string name)
{
Name = name;
}
public void AddAlbum(Album album)
{
albums.Add(album);
}
}

@ -15,7 +15,7 @@ public class CustomTitle : Title {
}
}
private string path;
private string path = "none.mp3";
public CustomTitle(string name, string imageURL, string information, string path) : base(name, imageURL, information)
{

@ -2,5 +2,28 @@
public interface IDataManager
{
//méthodes style IEnumerable<Groupe> RecupGFroupe();
IEnumerable<Title> GetTitles();
IEnumerable<Album> GetAlbums();
IEnumerable<Artist> GetArtists();
IEnumerable<Playlist> GetPlaylists();
public void AddAlbum(Album album);
public void AddArtist(Artist artist);
public void AddPlaylist(Playlist playlist);
public void AddTitle(Title title);
public void RemoveAlbum(Album album);
public void RemoveArtist(Artist artist);
public void RemovePlaylist(Playlist playlist);
public void RemoveTitle(Title title);
}

@ -2,7 +2,7 @@
public class InfoTitle : Title
{
public Artiste Artiste { get; set; }
public Artist Artiste { get; set; }
public string Description
{
@ -17,29 +17,36 @@ public class InfoTitle : Title
}
}
private string description;
private string description ="";
public IEnumerable<Artiste> Feat { get; set; }
private List<Artist> feat = new List<Artist>();
public IEnumerable<Artist> Feat
{
get
{
return feat;
}
}
public Genre Genre { get; set; }
public InfoTitle(string name, string imageURL, string information, Artiste artist, string description, Genre genre) : base(name,imageURL,information)
public InfoTitle(string name, string imageURL, string information, Artist artist, string description, Genre genre) : base(name,imageURL,information)
{
Artiste = artist;
Description = description;
Genre = genre;
Feat = new List<Artiste>();
}
public void AddFeat(Artiste artist)
public void AddFeat(Artist artist)
{
Feat.Prepend(artist);
feat.Add(artist);
}
public void RemoveFeat(Artiste artiste)
public void RemoveFeat(Artist artiste)
{
foreach (var item in Feat)
{
Feat = Feat.Where(item => item != artiste).ToList();
feat = Feat.Where(item => item != artiste).ToList();
}
}

@ -10,42 +10,66 @@ public class Manager
public IEnumerable<Playlist> Playlists;
public IEnumerable<Artist> Artists;
public Manager()
{
DataManager = new Stub();
// Albums = DataManager.GetAlbum();
Albums = new List<Album>();
Titles = new List<Title>();
Playlists = new List<Playlist>();
Albums = DataManager.GetAlbums();
Titles = DataManager.GetTitles();
Playlists = DataManager.GetPlaylists();
Artists = DataManager.GetArtists();
}
public void AddAlbum(Album album)
{
Albums.Prepend(album);
DataManager.AddAlbum(album);
Albums = DataManager.GetAlbums();
}
public void AddTitle(Title title)
{
Titles.Prepend(title);
DataManager.AddTitle(title);
Titles = DataManager.GetTitles();
}
public void AddPlaylist(Playlist playlist)
{
Playlists.Prepend(playlist);
DataManager.AddPlaylist(playlist);
Playlists = DataManager.GetPlaylists();
}
public void RemoveAlbum(Album album)
{
Albums.ToList().Remove(album);
DataManager.RemoveAlbum(album);
Albums = DataManager.GetAlbums();
}
public void RemoveTitle(Title title)
{
Titles.ToList().Remove(title);
DataManager.RemoveTitle(title);
Titles = DataManager.GetTitles();
}
public void RemovePlaylist(Playlist playlist)
{
Playlists.ToList().Remove(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();
}
}

@ -15,7 +15,7 @@ public class Playlist
}
}
private string name;
private string name ="Unknown";
public string Description
{
@ -30,9 +30,16 @@ public class Playlist
}
}
private string description;
private string description = "";
public IEnumerable<Title> Morceaux { get; set; }
private List<Title> morceaux = new List<Title>();
public IEnumerable<Title> Morceaux {
get
{
return morceaux;
}
}
public string ImageURL
{
@ -47,24 +54,119 @@ public class Playlist
}
}
private string imageURL;
private string imageURL = "none.png";
public int Index
{
get => index;
set
{
if (value < morceaux.Count())
{
index = value;
}
else if(Loop)
{
index = 0;
}
else
{
return;
}
}
}
private int index = 0;
public bool Shuffle = false;
public bool Loop = false;
public bool LoopTitle = false;
Random Aleatoire = new Random();
private List<int> played = new List<int>();
public IEnumerable<int> Played
{
get
{
return played;
}
}
public Playlist(string nom, string description, string imageURL)
{
Name = nom;
Description = description;
Morceaux = new List<Title>();
this.imageURL = imageURL;
}
public void AddTitle(Title morceau)
{
Morceaux.Prepend(morceau);
morceaux.Add(morceau);
}
public void RemoveTitle(Title morceau)
{
Morceaux.ToList().Remove(morceau);
morceaux.Remove(morceau);
}
public void NextTitle()
{
if (LoopTitle)
{
return;
}
if (!Shuffle)
{
Index++;
played.Add(Index);
}
else
{
Index = Aleatoire.Next(morceaux.Count() - 1);
played.Add(Index);
}
}
public void PreviousTitle()
{
if (LoopTitle)
{
return;
}
if(!Shuffle)
{
Index--;
played.RemoveAt(0);
}
else
{
if (played.Count() == 0)
{
return;
}
Index = played[0];
played.RemoveAt(0);
}
}
public Title? GetCurrentTitle()
{
if (Index < morceaux.Count() - 1)
{
return morceaux[Index];
}
else
{
return null;
}
}
}

@ -3,7 +3,7 @@
public class Stub : IDataManager
{
public IEnumerable<Artiste> Artistes;
public IEnumerable<Artist> Artists;
public IEnumerable<Album> Albums;
@ -13,37 +13,130 @@ public class Stub : IDataManager
public Stub()
{
Artistes = new List<Artiste>();
Albums = new List<Album>();
Playlists = new List<Playlist>();
Titles = new List<Title>();
Artiste Artiste1 = new Artiste("Critien");
Artiste Artiste2 = new Artiste("Gouriet");
Artiste Artiste3 = new Artiste("Poulifer");
Artiste Artiste4 = new Artiste("Credian");
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(new Album("la jsp", "oui.png", Artiste1, "c'est la couri", "plein d'infos2"));
Artiste2.AddAlbum(new Album("la pas le temps", "non.png", Artiste3, "c'est pas la street", "plein d'infos3"));
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");
Playlist Playlist3 = new Playlist("Playlist3", "desc3", "url3.png");
Playlist Playlist4 = new Playlist("Playlist4", "desc4", "url4.png");
Playlist1.AddTitle(new CustomTitle("custom1", "url1.png", "info1", "chemin1"));
Playlist1.AddTitle(new CustomTitle("custom2", "url2.png", "info2", "chemin2"));
Playlist1.AddTitle(new CustomTitle("custom3", "url3.png", "info3", "chemin3"));
Playlist2.AddTitle(new CustomTitle("custom4", "url4.png", "info4", "chemin4"));
Album1.AddTitle(new InfoTitle("info1", "url1.png", "info1", Artiste2, "desc1", Genre.K_POP));
Album1.AddTitle(new InfoTitle("info2", "url2.png", "info2", Artiste3, "desc2", Genre.GOSPEL));
Album1.AddTitle(new InfoTitle("info3", "url3.png", "info3", Artiste4, "desc3", Genre.BLUES));
Album4.AddTitle(new InfoTitle("info4", "url4.png", "info4", Artiste3, "desc4", Genre.DISCO));
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>()
{
Artiste1,
Artiste2,
Artiste3,
Artiste4
};
Albums = new List<Album>()
{
Album1,
Album2,
Album3,
Album4
};
Playlists = new List<Playlist>()
{
Playlist1,
Playlist2
};
Titles = new List<Title>()
{
Custom1,
Custom2,
Custom3,
Info1,
Info2
};
}
public IEnumerable<Album> GetAlbums()
{
return Albums;
}
public IEnumerable<Artist> GetArtists()
{
return Artists;
}
public IEnumerable<Playlist> GetPlaylists()
{
return Playlists;
}
public IEnumerable<Title> GetTitles()
{
return Titles;
}
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);
}
public void RemoveArtist(Artist artist)
{
Artists.ToList().Remove(artist);
}
}

@ -15,7 +15,7 @@
}
}
private string name;
private string name = "Unknown";
public string ImageURL
{
@ -30,7 +30,7 @@
}
}
private string imageURL;
private string imageURL = "none.png";
public string Information
{
@ -45,7 +45,7 @@
}
}
private string information;
private string information ="";
public Title(string nom, string file_Name, string informations)
{

Loading…
Cancel
Save