Started Serialization w/ Playlists

pull/22/head
Corentin LEMAIRE 2 years ago
parent c1bf1f13bf
commit 4c6cf42e79

@ -19,9 +19,9 @@ public partial class FooterPage : ContentView
// (s,a) = convention, s = sender, a = arguments, si appli fermée, on free tout
outputDevice.PlaybackStopped += PlaybackStoppedHandler;
morceauEnCours = "peaches.mp3";
/*morceauEnCours = "peaches.mp3";
audioFile = new AudioFileReader(morceauEnCours);
outputDevice.Init(audioFile);
outputDevice.Init(audioFile);*/
}
public void PlayButton_Clicked(object sender, EventArgs e)

@ -32,4 +32,8 @@ public interface IDataManager
public void RemoveInfoTitle(InfoTitle title);
public void LoadPlaylists();
public void SavePlaylists();
}

@ -54,9 +54,9 @@ public class Manager
}
}
public Manager()
public Manager(IDataManager dataManager)
{
DataManager = new StubManager();
DataManager = dataManager;
albums = DataManager.GetAlbums();
customTitles = DataManager.GetCustomTitles();

@ -101,15 +101,15 @@ public class Playlist
{
Name = nom;
Description = description;
this.imageURL = imageURL;
ImageURL = imageURL;
}
public void AddTitle(Title morceau)
public void AddTitle(CustomTitle morceau)
{
morceaux.Add(morceau);
}
public void RemoveTitle(Title morceau)
public void RemoveTitle(CustomTitle morceau)
{
morceaux.Remove(morceau);
}

@ -0,0 +1,185 @@
using Model.Stub;
using System.Linq;
using System.Xml;
using System.Xml.Linq;
namespace Model.Serialization;
public class LINQ_XML_Serialization : IDataManager
{
private List<Artist> artists;
public IEnumerable<Artist> Artists
{
get
{
return artists.ToList();
}
}
private List<Album> albums;
public IEnumerable<Album> Albums
{
get
{
return albums.ToList();
}
}
private List<Playlist> playlists;
public IEnumerable<Playlist> Playlists
{
get
{
return playlists.ToList();
}
}
private List<InfoTitle> infoTitles;
public IEnumerable<InfoTitle> InfoTitles
{
get
{
return infoTitles.ToList();
}
}
private List<CustomTitle> customTitles;
public IEnumerable<CustomTitle> CustomTitles
{
get
{
return customTitles.ToList();
}
}
public LINQ_XML_Serialization()
{
playlists = new List<Playlist>();
artists = new List<Artist>();
albums = new List<Album>();
infoTitles = new List<InfoTitle>();
customTitles = new List<CustomTitle>();
LoadPlaylists();
}
public void AddAlbum(Album album)
{
albums.Add(album);
}
public void AddArtist(Artist artist)
{
artists.Add(artist);
}
public void AddCustomTitle(CustomTitle title)
{
customTitles.Add(title);
}
public void AddInfoTitle(InfoTitle title)
{
infoTitles.Add(title);
}
public void AddPlaylist(Playlist playlist)
{
playlists.Add(playlist);
}
public List<Album> GetAlbums()
{
return albums;
}
public List<Artist> GetArtists()
{
return artists;
}
public List<CustomTitle> GetCustomTitles()
{
return customTitles;
}
public List<InfoTitle> GetInfoTitles()
{
return infoTitles;
}
public List<Playlist> GetPlaylists()
{
return playlists;
}
public void RemoveAlbum(Album album)
{
albums.Remove(album);
}
public void RemoveArtist(Artist artist)
{
artists.Remove(artist);
}
public void RemoveCustomTitle(CustomTitle title)
{
customTitles.Remove(title);
}
public void RemoveInfoTitle(InfoTitle title)
{
infoTitles.Remove(title);
}
public void RemovePlaylist(Playlist playlist)
{
playlists.Remove(playlist);
}
public void LoadPlaylists()
{
XDocument PlaylistsFichier = XDocument.Load("playlists.xml");
playlists = PlaylistsFichier.Descendants("playlist")
.Select(eltPlaylist => new Playlist(
eltPlaylist.Attribute("Name")!.Value,
eltPlaylist.Element("Description")!.Value,
eltPlaylist.Element("ImageURL")!.Value
)).ToList();
foreach(Playlist playlist in playlists)
{
var custom = PlaylistsFichier.Descendants("playlist")
.Single(ct => ct.Attribute("Name")?.Value == playlist.Name)
.Element("Customs");
}
}
public void SavePlaylists()
{
XDocument PlaylistsFichier = new XDocument();
var playlist = playlists.Select(playlist => new XElement("playlist",
new XAttribute("Name", playlist.Name),
new XElement("Description", playlist.Description),
new XElement("ImageURL", playlist.ImageURL)
));
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
using(TextWriter tw = File.CreateText("playlists.xml"))
{
using(XmlWriter writer = XmlWriter.Create(tw, settings))
{
PlaylistsFichier.Save(writer);
}
}
}
}

@ -229,4 +229,14 @@ public class StubManager : IDataManager
{
artists.Remove(artist);
}
public void LoadPlaylists()
{
return;
}
public void SavePlaylists()
{
return;
}
}

Loading…
Cancel
Save