From e55766b1b71a09cbfff20feb2eacfd7190411d12 Mon Sep 17 00:00:00 2001 From: Corentin LEMAIRE Date: Tue, 23 May 2023 07:23:02 +0200 Subject: [PATCH] Enhance album databinding development --- Sources/Linaris/AlbumPage.xaml | 95 ++------ Sources/Linaris/AlbumPage.xaml.cs | 16 +- Sources/Linaris/FooterPage.xaml | 1 + Sources/Linaris/MainPage.xaml.cs | 8 +- Sources/Model/Album.cs | 4 +- Sources/Model/IDataManager.cs | 6 +- .../Serialization/LINQ_XML_Serialization.cs | 207 +++++++++++++----- Sources/Model/Stub/StubAlbum.cs | 4 +- Sources/Model/Stub/StubCustomTitle.cs | 6 +- Sources/Model/Stub/StubInfoTitle.cs | 6 +- Sources/Model/Stub/StubManager.cs | 92 +++++++- Sources/Model/Stub/StubPlaylist.cs | 4 +- 12 files changed, 302 insertions(+), 147 deletions(-) diff --git a/Sources/Linaris/AlbumPage.xaml b/Sources/Linaris/AlbumPage.xaml index 7f15aca..3b22134 100644 --- a/Sources/Linaris/AlbumPage.xaml +++ b/Sources/Linaris/AlbumPage.xaml @@ -3,7 +3,6 @@ xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="Linaris.AlbumPage" xmlns:local="clr-namespace:Linaris" - xmlns:avatarview="clr-namespace:Syncfusion.Maui.Core;assembly=Syncfusion.Maui.Core" Title="Album" Style="{StaticResource PageFlyoutTrigger}"> @@ -27,88 +26,36 @@ - - - diff --git a/Sources/Linaris/AlbumPage.xaml.cs b/Sources/Linaris/AlbumPage.xaml.cs index adde9b9..bc0cb02 100644 --- a/Sources/Linaris/AlbumPage.xaml.cs +++ b/Sources/Linaris/AlbumPage.xaml.cs @@ -1,9 +1,23 @@ +using Model; namespace Linaris; public partial class AlbumPage : ContentPage { - public AlbumPage() + private Album album; + + public Album Album + { + get => album; + set + { + album = value; + } + } + + public AlbumPage(Album a) { InitializeComponent(); + album = a; + BindingContext = album; } } \ No newline at end of file diff --git a/Sources/Linaris/FooterPage.xaml b/Sources/Linaris/FooterPage.xaml index 62a8718..1c1f445 100644 --- a/Sources/Linaris/FooterPage.xaml +++ b/Sources/Linaris/FooterPage.xaml @@ -1,6 +1,7 @@ diff --git a/Sources/Linaris/MainPage.xaml.cs b/Sources/Linaris/MainPage.xaml.cs index 82c9d21..bddae98 100644 --- a/Sources/Linaris/MainPage.xaml.cs +++ b/Sources/Linaris/MainPage.xaml.cs @@ -20,7 +20,13 @@ public partial class MainPage : ContentPage async void GoToAlbum(object sender, EventArgs e) { - await Navigation.PushAsync(new AlbumPage()); + if (sender is Image image) + { + if (image.BindingContext is Album album) + { + await Navigation.PushAsync(new AlbumPage(album)); + } + } } } diff --git a/Sources/Model/Album.cs b/Sources/Model/Album.cs index 84e1454..65ad0a9 100644 --- a/Sources/Model/Album.cs +++ b/Sources/Model/Album.cs @@ -88,10 +88,10 @@ namespace Model private string information = Manager.DEFAULT_DESC; - public Album(string name, string file_Name, Artist artist, string description, string information) + public Album(string name, string imageURL, Artist artist, string description, string information) { Name = name; - ImageURL = file_Name; + ImageURL = imageURL; Artist = artist; Description = description; Information = information; diff --git a/Sources/Model/IDataManager.cs b/Sources/Model/IDataManager.cs index 7db21e1..8cfc498 100644 --- a/Sources/Model/IDataManager.cs +++ b/Sources/Model/IDataManager.cs @@ -28,7 +28,7 @@ public interface IDataManager // Read ObservableCollection GetCustomTitles(); - CustomTitle? GetCustomTitleByUrl(string custom); + CustomTitle? GetCustomTitleByName(string custom); ObservableCollection GetInfoTitles(); @@ -50,7 +50,7 @@ public interface IDataManager // Update void UpdateCustomTitle(CustomTitle title, string name, string url, string info, string path); - void UpdateCustomTitleByUrl(string url, string name, string newUrl, string info, string path); + void UpdateCustomTitleByName(string name, string newUrl, string info, string path); void UpdateInfoTitle(InfoTitle title, string name, string url, string info, Artist artist, string description, Genre genre); @@ -117,7 +117,7 @@ public interface IDataManager bool ExistsCustomTitle(CustomTitle title); - bool ExistsCustomTitleByUrl(string url); + bool ExistsCustomTitleByName(string name); bool ExistsInfoTitle(InfoTitle title); diff --git a/Sources/Model/Serialization/LINQ_XML_Serialization.cs b/Sources/Model/Serialization/LINQ_XML_Serialization.cs index 414ef7e..1ebb941 100644 --- a/Sources/Model/Serialization/LINQ_XML_Serialization.cs +++ b/Sources/Model/Serialization/LINQ_XML_Serialization.cs @@ -1,6 +1,7 @@ using System.Xml; using System.Xml.Linq; using System.Collections.ObjectModel; +using Model.Stub; namespace Model.Serialization; @@ -73,9 +74,17 @@ public class LinqXmlSerialization : IDataManager playlists = new ObservableCollection(); artists = new List(); Artist ImagineDragons = new Artist("Imagine Dragons"); + Artist artist = new Artist("artist"); + InfoTitle nom = new InfoTitle("nom", "none.png", "infos", artist, "desc", Genre.RAP); + InfoTitle unknown = new InfoTitle(); + infoTitles = new ObservableCollection() + { + nom, + unknown + }; albums = new ObservableCollection() { - new Album("Adios Bahamas", "album1.jpg", new Artist(), "", ""), + new Album("Adios Bahamas", "album1.jpg", artist, "Description d'Adios Bahamas", "Informations sur Adios Bahamas"), new Album("Album2", "album2.jpg", new Artist(), "", ""), new Album("Album3", "album3.jpg", new Artist(), "", ""), new Album("Album4", "album4.jpg", new Artist(), "", ""), @@ -83,14 +92,16 @@ public class LinqXmlSerialization : IDataManager new Album("Album6", "album6.jpg", new Artist(), "", ""), new Album("Album7", "album7.png", new Artist(), "", ""), new Album("Album8", "album8.jpg", new Artist(), "", ""), - new Album("Night Visions", "album9.jpg", new Artist(), "", ""), - new Album("Smoke & Mirrors", "album10.jpg", new Artist(), "", ""), - new Album("Evolve", "album11.jpg", new Artist(), "", ""), - new Album("Origins", "album12.jpg", new Artist(), "", ""), - new Album("Mercury Act 1", "album13.jpg", new Artist(), "", ""), - new Album("Mercury Act 2", "album14.jpg", new Artist(), "", "") + new Album("Night Visions", "album9.jpg", ImagineDragons, "", ""), + new Album("Smoke & Mirrors", "album10.jpg", ImagineDragons, "", ""), + new Album("Evolve", "album11.jpg", ImagineDragons, "", ""), + new Album("Origins", "album12.jpg", ImagineDragons, "", ""), + new Album("Mercury Act 1", "album13.jpg", ImagineDragons, "", ""), + new Album("Mercury Act 2", "album14.jpg", ImagineDragons, "", "") }; - infoTitles = new ObservableCollection(); + Album? AdiosBahamas = GetAlbumByName("Adios Bahamas"); + AdiosBahamas?.AddTitle(nom); + AdiosBahamas?.AddTitle(unknown); customTitles = new ObservableCollection(); if (!Directory.Exists(XMLPATH)) { @@ -98,6 +109,7 @@ public class LinqXmlSerialization : IDataManager } Directory.SetCurrentDirectory(XMLPATH); SaveAlbums(); + SaveInfoTitles(); LoadSerialization(); } @@ -128,7 +140,7 @@ public class LinqXmlSerialization : IDataManager public ObservableCollection GetAlbums() { - return Albums; + return albums; } public List GetArtists() @@ -138,17 +150,17 @@ public class LinqXmlSerialization : IDataManager public ObservableCollection GetCustomTitles() { - return CustomTitles; + return customTitles; } public ObservableCollection GetInfoTitles() { - return InfoTitles; + return infoTitles; } public ObservableCollection GetPlaylists() { - return Playlists; + return playlists; } public void RemoveAlbum(Album album) @@ -206,7 +218,7 @@ public class LinqXmlSerialization : IDataManager new XAttribute("Name", p.Name), new XElement("Description", p.Description), new XElement("ImageURL", p.ImageURL), - new XElement("Titles", p.Titles.Any() ? p.Titles.Select(a => a.ImageURL).Aggregate((albumUrl, nextAlbum) => albumUrl + " " + nextAlbum) : "") + new XElement("Titles", p.Titles.Any() ? p.Titles.Select(a => a.Name).Aggregate((playlistName, nextPlaylist) => playlistName + " " + nextPlaylist) : "") )); PlaylistFile.Add(new XElement("Playlists", playlist)); @@ -233,22 +245,30 @@ public class LinqXmlSerialization : IDataManager foreach (Playlist playlist in playlists) { - var custom = PlaylistsFichier.Descendants("Playlist") + var allCustoms = PlaylistsFichier.Descendants("Playlist") .Single(ct => ct.Attribute("Name")?.Value == playlist.Name) - .Element("Titles")!.ToString(); - if (custom == null) + .Element("Titles")!.Value; + + if (allCustoms == null) { continue; } - CustomTitle? customTitle = GetCustomTitleByUrl(custom); + char[] separator = new char[] { ' ' }; + string[] customArray = allCustoms.Split(separator, StringSplitOptions.RemoveEmptyEntries); + List customsList = customArray.ToList(); - if (customTitle == null) + foreach(var custom in customsList) { - continue; - } + CustomTitle? customTitle = GetCustomTitleByName(custom); + + if (customTitle == null) + { + continue; + } - playlist.AddTitle(customTitle); + playlist.AddTitle(customTitle); + } } } @@ -260,7 +280,7 @@ public class LinqXmlSerialization : IDataManager new XAttribute("Name", playlist.Name), new XElement("Description", playlist.Description), new XElement("ImageURL", playlist.ImageURL), - new XElement("Titles", playlist.Titles.Any() ? playlist.Titles.Select(p => p.ImageURL).Aggregate((playlistUrl, nextPlaylist) => playlistUrl + " " + nextPlaylist) : "") + new XElement("Titles", playlist.Titles.Any() ? playlist.Titles.Select(p => p.Name).Aggregate((playlistName, nextPlaylist) => playlistName + " " + nextPlaylist) : "") )); PlaylistsFichier.Add(new XElement("Playlists", playlist)); @@ -278,7 +298,7 @@ public class LinqXmlSerialization : IDataManager public void LoadArtists() { - if (!File.Exists(XMLFILEARTISTS)) + /*if (!File.Exists(XMLFILEARTISTS)) { XDocument ArtistFile = new XDocument(); Artist a1 = new Artist("a1"); @@ -308,13 +328,14 @@ public class LinqXmlSerialization : IDataManager artists = ArtistsFile.Descendants("Artist") .Select(eltArtist => new Artist( eltArtist.Attribute("Name")!.Value - )).ToList(); + )).ToList();*/ + artists.Add(new Artist("Imagine Dragons")); } public void SaveArtists() { - XDocument ArtistsFile = new XDocument(); + /*XDocument ArtistsFile = new XDocument(); var artist = artists.Select(artist => new XElement("Artist", new XAttribute("Name", artist.Name) )); @@ -330,8 +351,7 @@ public class LinqXmlSerialization : IDataManager { ArtistsFile.Save(writer); } - } - + }*/ } public void LoadCustomTitles() @@ -401,7 +421,7 @@ public class LinqXmlSerialization : IDataManager public void LoadAlbums() { - if (!File.Exists(XMLFILEALBUMS)) + /*if (!File.Exists(XMLFILEALBUMS)) { XDocument AlbumFile = new XDocument(); Album a1 = new Album(); @@ -413,7 +433,7 @@ public class LinqXmlSerialization : IDataManager new XElement("Artist", p.Titles.Any() ? p.Titles.Select(a => a.Name).Aggregate((artistName, nextArtist) => artistName + " " + nextArtist) : ""), new XElement("Description", p.Description), new XElement("Information", p.Information), - new XElement("Titles", p.Titles.Any() ? p.Titles.Select(a => a.ImageURL).Aggregate((albumUrl, nextAlbum) => albumUrl + " " + nextAlbum) : "") + new XElement("Titles", p.Titles.Any() ? p.Titles.Select(a => a.Name).Aggregate((albumName, nextAlbum) => albumName + " " + nextAlbum) : "") )); AlbumFile.Add(new XElement("Albums", album)); @@ -443,28 +463,35 @@ public class LinqXmlSerialization : IDataManager foreach (Album a in albums) { - var title = AlbumsFile.Descendants("Album") + var allTitles = AlbumsFile.Descendants("Album") .Single(ct => ct.Attribute("Name")?.Value == a.Name) - .Element("Titles")!.ToString(); - if (title == null) + .Element("Titles")!.Value; + if (allTitles == null) { continue; } - InfoTitle? infoTitle = GetInfoTitleByName(title); + char[] separator = new char[] { ' ' }; + string[] titleArray = allTitles.Split(separator, StringSplitOptions.RemoveEmptyEntries); + List titlesList = titleArray.ToList(); - if (infoTitle == null) + foreach (var title in titlesList) { - continue; - } + InfoTitle? infoTitle = GetInfoTitleByName(title); - a.AddTitle(infoTitle); - } + if (infoTitle == null) + { + continue; + } + + a.AddTitle(infoTitle); + } + }*/ } public void SaveAlbums() { - XDocument AlbumsFile = new XDocument(); + /* XDocument AlbumsFile = new XDocument(); var album = albums.Select(a => new XElement("Album", new XAttribute("Name", a.Name), @@ -472,7 +499,7 @@ public class LinqXmlSerialization : IDataManager new XElement("Artist", a.Artist.Name), new XElement("Description", a.Description), new XElement("Information", a.Information), - new XElement("Titles", a.Titles.Any() ? a.Titles.Select(p => p.ImageURL).Aggregate((albumUrl, nextAlbum) => albumUrl + " " + nextAlbum) : "") + new XElement("Titles", a.Titles.Any() ? a.Titles.Select(p => p.Name).Aggregate((albumName, nextAlbum) => albumName + " " + nextAlbum) : "") )); AlbumsFile.Add(new XElement("Albums", album)); @@ -485,12 +512,12 @@ public class LinqXmlSerialization : IDataManager { AlbumsFile.Save(writer); } - } + }*/ } public void LoadInfoTitles() { - if (!File.Exists(XMLFILEINFOS)) + /*if (!File.Exists(XMLFILEINFOS)) { XDocument InfoFile = new XDocument(); InfoTitle it1 = new InfoTitle(); @@ -548,12 +575,94 @@ public class LinqXmlSerialization : IDataManager } it.AddFeat(Feat); + }*/ + + + AddInfoTitle(new InfoTitle("Bones", "none.png", "infos", GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + AddInfoTitle(new InfoTitle("Symphony", "none.png", "infos", GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + AddInfoTitle(new InfoTitle("Sharks", "none.png", "infos", GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + AddInfoTitle(new InfoTitle("I don't like myself", "none.png", "infos", GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + AddInfoTitle(new InfoTitle("Blur", "none.png", "infos", GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + AddInfoTitle(new InfoTitle("Higher ground", "none.png", "infos", GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + AddInfoTitle(new InfoTitle("Crushed", "none.png", "infos", GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + AddInfoTitle(new InfoTitle("Take it easy", "none.png", "infos", GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + AddInfoTitle(new InfoTitle("Waves", "none.png", "infos", GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + AddInfoTitle(new InfoTitle("I'm happy", "none.png", "infos", GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + AddInfoTitle(new InfoTitle("Ferris wheel", "none.png", "infos", GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + AddInfoTitle(new InfoTitle("Peace of mind", "none.png", "infos", GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + AddInfoTitle(new InfoTitle("Sirens", "none.png", "infos", GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + AddInfoTitle(new InfoTitle("Tied", "none.png", "infos", GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + AddInfoTitle(new InfoTitle("Younger", "none.png", "infos", GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + AddInfoTitle(new InfoTitle("Continual", "none.png", "infos", GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + AddInfoTitle(new InfoTitle("They don't know you like I do", "none.png", "infos", GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + foreach (var infoTitle in InfoTitles) + { + switch (infoTitle.Name) + { + case "Bones": + GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Symphony": + GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Sharks": + GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "I don't like myself": + GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Blur": + GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Higher ground": + GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Crushed": + GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Take it easy": + GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Waves": + GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "I'm Happy": + GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Ferris wheel": + GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Peace of mind": + GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Sirens": + GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Tied": + GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Younger": + GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Continual": + GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "They don't know you like I do": + GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + default: + break; + } } + + + + } public void SaveInfoTitles() { - XDocument InfosFile = new XDocument(); + /*XDocument InfosFile = new XDocument(); var info = infoTitles.Select(it => new XElement("InfoTitle", new XAttribute("Name", it.Name), @@ -574,7 +683,7 @@ public class LinqXmlSerialization : IDataManager { InfosFile.Save(writer); } - } + }*/ } public static Genre GetGenreByName(string genre) { @@ -634,7 +743,7 @@ public class LinqXmlSerialization : IDataManager return null; } - public CustomTitle? GetCustomTitleByUrl(string custom) + public CustomTitle? GetCustomTitleByName(string custom) { foreach(CustomTitle customTitle in customTitles) { @@ -706,9 +815,9 @@ public class LinqXmlSerialization : IDataManager title.Path = path; } - public void UpdateCustomTitleByUrl(string url, string name, string newUrl, string info, string path) + public void UpdateCustomTitleByName(string name, string newUrl, string info, string path) { - CustomTitle? title = GetCustomTitleByUrl(url); + CustomTitle? title = GetCustomTitleByName(name); if (title != null) { title.Name = name; @@ -982,11 +1091,11 @@ public class LinqXmlSerialization : IDataManager return false; } - public bool ExistsCustomTitleByUrl(string url) + public bool ExistsCustomTitleByName(string name) { foreach(CustomTitle ct in customTitles) { - if(ct.ImageURL == url) + if(ct.Name == name) { return true; } diff --git a/Sources/Model/Stub/StubAlbum.cs b/Sources/Model/Stub/StubAlbum.cs index 943227a..7e5ee40 100644 --- a/Sources/Model/Stub/StubAlbum.cs +++ b/Sources/Model/Stub/StubAlbum.cs @@ -40,11 +40,11 @@ public class StubAlbum { return albums; } - public Album? GetAlbumByUrl(string url) + public Album? GetAlbumByName(string name) { foreach(Album album in albums) { - if (url == album.ImageURL) + if (name == album.Name) { return album; } diff --git a/Sources/Model/Stub/StubCustomTitle.cs b/Sources/Model/Stub/StubCustomTitle.cs index 5d77320..10a6747 100644 --- a/Sources/Model/Stub/StubCustomTitle.cs +++ b/Sources/Model/Stub/StubCustomTitle.cs @@ -36,14 +36,14 @@ public class StubCustomTitle { return customTitles; } - public List GetCustomTitlesByUrl(List urls) + public List GetCustomTitlesByNames(List names) { List Customs = new List(); - foreach(var url in urls) + foreach(var name in names) { foreach (var title in customTitles) { - if (url == title.ImageURL) + if (name == title.Name) { Customs.Add(title); } diff --git a/Sources/Model/Stub/StubInfoTitle.cs b/Sources/Model/Stub/StubInfoTitle.cs index ae1ac9f..226ae4c 100644 --- a/Sources/Model/Stub/StubInfoTitle.cs +++ b/Sources/Model/Stub/StubInfoTitle.cs @@ -39,14 +39,14 @@ public class StubInfoTitle { return infoTitles; } - public List GetInfoTitlesByUrl(List urls) + public List GetInfoTitlesByNames(List names) { List infos = new List(); - foreach(var url in urls) + foreach(var name in names) { foreach(var titles in infoTitles) { - if (url == titles.ImageURL) + if (name == titles.Name) { infos.Add(titles); } diff --git a/Sources/Model/Stub/StubManager.cs b/Sources/Model/Stub/StubManager.cs index 8a60249..56ba7e9 100644 --- a/Sources/Model/Stub/StubManager.cs +++ b/Sources/Model/Stub/StubManager.cs @@ -63,7 +63,7 @@ public class StubManager : IDataManager stubCustomTitle = new StubCustomTitle(); stubInfoTitle = new StubInfoTitle(); stubPlaylist = new StubPlaylist(); - StubPlaylist.Playlists.First().AddTitle(StubCustomTitle.CustomTitles.First()); + LoadSerialization(); } public ObservableCollection GetAlbums() @@ -150,7 +150,85 @@ public class StubManager : IDataManager public void LoadSerialization() { - // Doesn't do anything because it's Stubs + StubArtist.AddArtist(new Artist("Imagine Dragons")); + StubAlbum.AddAlbum(new Album("Mercury Act 2", "image14.png", StubArtist.GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", "infos")); + StubPlaylist.Playlists.First().AddTitle(StubCustomTitle.CustomTitles.First()); + StubInfoTitle.AddInfoTitle(new InfoTitle("Bones", "none.png", "infos", StubArtist.GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + StubInfoTitle.AddInfoTitle(new InfoTitle("Symphony", "none.png", "infos", StubArtist.GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + StubInfoTitle.AddInfoTitle(new InfoTitle("Sharks", "none.png", "infos", StubArtist.GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + StubInfoTitle.AddInfoTitle(new InfoTitle("I don't like myself", "none.png", "infos", StubArtist.GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + StubInfoTitle.AddInfoTitle(new InfoTitle("Blur", "none.png", "infos", StubArtist.GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + StubInfoTitle.AddInfoTitle(new InfoTitle("Higher ground", "none.png", "infos", StubArtist.GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + StubInfoTitle.AddInfoTitle(new InfoTitle("Crushed", "none.png", "infos", StubArtist.GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + StubInfoTitle.AddInfoTitle(new InfoTitle("Take it easy", "none.png", "infos", StubArtist.GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + StubInfoTitle.AddInfoTitle(new InfoTitle("Waves", "none.png", "infos", StubArtist.GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + StubInfoTitle.AddInfoTitle(new InfoTitle("I'm happy", "none.png", "infos", StubArtist.GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + StubInfoTitle.AddInfoTitle(new InfoTitle("Ferris wheel", "none.png", "infos", StubArtist.GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + StubInfoTitle.AddInfoTitle(new InfoTitle("Peace of mind", "none.png", "infos", StubArtist.GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + StubInfoTitle.AddInfoTitle(new InfoTitle("Sirens", "none.png", "infos", StubArtist.GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + StubInfoTitle.AddInfoTitle(new InfoTitle("Tied", "none.png", "infos", StubArtist.GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + StubInfoTitle.AddInfoTitle(new InfoTitle("Younger", "none.png", "infos", StubArtist.GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + StubInfoTitle.AddInfoTitle(new InfoTitle("Continual", "none.png", "infos", StubArtist.GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + StubInfoTitle.AddInfoTitle(new InfoTitle("They don't know you like I do", "none.png", "infos", StubArtist.GetArtistByName("Imagine Dragons") ?? new Artist("Imagine Dragons"), "desc", Genre.POP)); + foreach (var infoTitle in StubInfoTitle.InfoTitles) + { + switch(infoTitle.Name) + { + case "Bones": + StubAlbum.GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Symphony": + StubAlbum.GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Sharks": + StubAlbum.GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "I don't like myself": + StubAlbum.GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Blur": + StubAlbum.GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Higher ground": + StubAlbum.GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Crushed": + StubAlbum.GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Take it easy": + StubAlbum.GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Waves": + StubAlbum.GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "I'm Happy": + StubAlbum.GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Ferris wheel": + StubAlbum.GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Peace of mind": + StubAlbum.GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Sirens": + StubAlbum.GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Tied": + StubAlbum.GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Younger": + StubAlbum.GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "Continual": + StubAlbum.GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + case "They don't know you like I do": + StubAlbum.GetAlbumByName("Mercury Act 2")!.AddTitle(infoTitle); + break; + default: + break; + } + } } public void SaveSerialization() @@ -158,7 +236,7 @@ public class StubManager : IDataManager // Doesn't do anything because it's Stubs } - public CustomTitle? GetCustomTitleByUrl(string custom) + public CustomTitle? GetCustomTitleByName(string custom) { foreach (CustomTitle customTitle in StubCustomTitle.GetCustomTitles()) { @@ -266,9 +344,9 @@ public class StubManager : IDataManager title.Path = path; } - public void UpdateCustomTitleByUrl(string url, string name, string newUrl, string info, string path) + public void UpdateCustomTitleByName(string name, string newUrl, string info, string path) { - CustomTitle? title = GetCustomTitleByUrl(url); + CustomTitle? title = GetCustomTitleByName(name); if (title != null) { title.Name = name; @@ -542,11 +620,11 @@ public class StubManager : IDataManager return false; } - public bool ExistsCustomTitleByUrl(string url) + public bool ExistsCustomTitleByName(string name) { foreach (CustomTitle ct in StubCustomTitle.CustomTitles) { - if (ct.ImageURL == url) + if (ct.Name == name) { return true; } diff --git a/Sources/Model/Stub/StubPlaylist.cs b/Sources/Model/Stub/StubPlaylist.cs index d92a214..773e49e 100644 --- a/Sources/Model/Stub/StubPlaylist.cs +++ b/Sources/Model/Stub/StubPlaylist.cs @@ -33,11 +33,11 @@ public class StubPlaylist { return playlists; } - public Playlist? GetPlaylistByUrl(string url) + public Playlist? GetPlaylistByName(string name) { foreach(var playlist in playlists) { - if (playlist.ImageURL == url) + if (playlist.Name == name) { return playlist; }