Enhance album databinding development
continuous-integration/drone/push Build is passing Details

pull/28/head
Corentin LEMAIRE 2 years ago
parent 6b4916e898
commit e55766b1b7

@ -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 @@
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<VerticalStackLayout Grid.Column="0">
<avatarview:SfAvatarView
Style="{StaticResource pdp}"
ImageSource="album9.jpg"/>
<Label Text="Night Visions"
<Frame IsClippedToBounds="True" CornerRadius="75" HeightRequest="150" WidthRequest="150" HorizontalOptions="Center" VerticalOptions="Center">
<Image Source="{Binding ImageURL}" Aspect="AspectFill" WidthRequest="150" HeightRequest="150" Margin="-20"/>
</Frame>
<Label Text="{Binding Name}"
Style="{StaticResource Titre}">
</Label>
<Label Text="Description"
<Label Text="{Binding Description}"
Style="{StaticResource SousTitre}">
</Label>
<Frame Style="{StaticResource Song}">
<Label Text="Morceau 1"
FontSize="20"
TextColor="white"
HorizontalTextAlignment="Center"/>
</Frame>
<Frame Style="{StaticResource Song}">
<Label Text="Morceau 2"
FontSize="20"
TextColor="white"
HorizontalTextAlignment="Center"/>
</Frame>
<Frame Style="{StaticResource Song}">
<Label Text="Morceau 3"
FontSize="20"
TextColor="white"
HorizontalTextAlignment="Center"/>
</Frame>
<Frame Style="{StaticResource Song}">
<Label Text="Morceau 4"
FontSize="20"
TextColor="white"
HorizontalTextAlignment="Center"/>
</Frame>
<Frame Style="{StaticResource Song}">
<Label Text="Morceau 5"
FontSize="20"
TextColor="white"
HorizontalTextAlignment="Center"/>
</Frame>
<Frame Style="{StaticResource Song}">
<Label Text="Morceau 6"
FontSize="20"
TextColor="white"
HorizontalTextAlignment="Center"/>
</Frame>
<Frame Style="{StaticResource Song}">
<Label Text="Morceau 7"
FontSize="20"
TextColor="white"
HorizontalTextAlignment="Center"/>
</Frame>
<VerticalStackLayout VerticalOptions="Fill" BackgroundColor="grey" Style="{StaticResource InfosStackTrigger}" Padding="20" Margin="0,10,0,10">
<VerticalStackLayout HorizontalOptions="Fill">
<Label Text="Informations complémentaires" TextColor="White" HorizontalOptions="Center">
</Label>
<Label TextColor="White" HorizontalOptions="Center" VerticalOptions="End">
<Label.Text>
Plein d'informations sur ce bel album, plein de chiffres etc...
</Label.Text>
</Label>
</VerticalStackLayout>
</VerticalStackLayout>
<ListView ItemsSource="{Binding Titles}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Frame Style="{StaticResource Song}">
<Label Text="{Binding Name}"
FontSize="20"
TextColor="white"
HorizontalTextAlignment="Center"/>
</Frame>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</VerticalStackLayout>
<ScrollView Grid.Column="1" VerticalOptions="Fill" BackgroundColor="gray">
<VerticalStackLayout HorizontalOptions="Fill">
<Label Text="Informations complémentaires" TextColor="White" HorizontalOptions="Center"/>
<Label TextColor="White" HorizontalOptions="Center" VerticalOptions="End">
<Label.Text>
Plein d'informations sur ce bel album, plein de chiffres etc...
</Label.Text>
</Label>
<Label Text="Informations complémentaires" TextColor="{StaticResource Blue200Accent}" FontSize="16" HorizontalTextAlignment="Center" FontAttributes="Bold" HorizontalOptions="Center" Margin="0,0,0,10"/>
<Label TextColor="White" HorizontalOptions="Center" VerticalOptions="End" Text="{Binding Information}"/>
</VerticalStackLayout>
</ScrollView>
</Grid>

@ -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;
}
}

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Name="this"
x:Class="Linaris.FooterPage">
<Grid Grid.ColumnSpan="2" Grid.Row="1" BackgroundColor="Gray" Style="{StaticResource FooterTrigger}">

@ -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));
}
}
}
}

@ -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;

@ -28,7 +28,7 @@ public interface IDataManager
// Read
ObservableCollection<CustomTitle> GetCustomTitles();
CustomTitle? GetCustomTitleByUrl(string custom);
CustomTitle? GetCustomTitleByName(string custom);
ObservableCollection<InfoTitle> 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);

@ -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<Playlist>();
artists = new List<Artist>();
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<InfoTitle>()
{
nom,
unknown
};
albums = new ObservableCollection<Album>()
{
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 &amp; 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 &amp; 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<InfoTitle>();
Album? AdiosBahamas = GetAlbumByName("Adios Bahamas");
AdiosBahamas?.AddTitle(nom);
AdiosBahamas?.AddTitle(unknown);
customTitles = new ObservableCollection<CustomTitle>();
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<Album> GetAlbums()
{
return Albums;
return albums;
}
public List<Artist> GetArtists()
@ -138,17 +150,17 @@ public class LinqXmlSerialization : IDataManager
public ObservableCollection<CustomTitle> GetCustomTitles()
{
return CustomTitles;
return customTitles;
}
public ObservableCollection<InfoTitle> GetInfoTitles()
{
return InfoTitles;
return infoTitles;
}
public ObservableCollection<Playlist> 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<string> 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<string> 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;
}

@ -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;
}

@ -36,14 +36,14 @@ public class StubCustomTitle
{
return customTitles;
}
public List<CustomTitle> GetCustomTitlesByUrl(List<string> urls)
public List<CustomTitle> GetCustomTitlesByNames(List<string> names)
{
List<CustomTitle> Customs = new List<CustomTitle>();
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);
}

@ -39,14 +39,14 @@ public class StubInfoTitle
{
return infoTitles;
}
public List<InfoTitle> GetInfoTitlesByUrl(List<string> urls)
public List<InfoTitle> GetInfoTitlesByNames(List<string> names)
{
List<InfoTitle> infos = new List<InfoTitle>();
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);
}

@ -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<Album> 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;
}

@ -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;
}

Loading…
Cancel
Save