Merge dev-binding-playlist -> dev-binding
continuous-integration/drone/push Build is failing Details

pull/28/head^2
Corentin LEMAIRE 2 years ago
commit 5bb8321bfa

@ -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,42 +1,40 @@
using Model.Serialization;
using Model.Stub;
using Model;
namespace Linaris;
public partial class App : Application
{
public Manager Manager = new(new LinqXmlSerialization());
public App()
{
InitializeComponent();
MainPage = new AppShell();
}
{
InitializeComponent();
MainPage = new AppShell();
}
protected override Window CreateWindow(IActivationState activationState)
{
var Window = base.CreateWindow(activationState);
var Window = base.CreateWindow(activationState);
Window.Stopped += (sender, eventArgs) => {
Manager.SaveSerialization();
};
Window.Stopped += (sender, eventArgs) => {
Manager.SaveSerialization();
};
const int newHeight = 900;
const int newWidth = 1800;
const int minHeight = 800;
const int minWidth = 400;
const int newHeight = 900;
const int newWidth = 1800;
const int minHeight = 800;
const int minWidth = 400;
Window.X = 0;
Window.Y = 100;
Window.X = 0;
Window.Y = 100;
Window.Width = newWidth;
Window.Height = newHeight;
Window.Width = newWidth;
Window.Height = newHeight;
Window.MinimumHeight = minHeight;
Window.MinimumWidth = minWidth;
Window.MinimumHeight = minHeight;
Window.MinimumWidth = minWidth;
return Window;
return Window;
}
}

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

@ -27,14 +27,12 @@
<TapGestureRecognizer Tapped="ShowSubMenu"/>
</Image.GestureRecognizers>
</Image>
<Label Text="{Binding Name}" Style="{StaticResource Titre}" IsVisible="{Binding IsRenaming, Converter={StaticResource InverseBooleanConverter}}" HorizontalTextAlignment="Center" WidthRequest="250" LineBreakMode="TailTruncation"/>
<Entry Text="{Binding NewName}" Placeholder="Nouveau nom" IsVisible="{Binding IsRenaming}" Completed="RenameCustomTitle"/>
<Label Text="{Binding Name}" Style="{StaticResource Titre}" HorizontalTextAlignment="Center" WidthRequest="250" LineBreakMode="TailTruncation"/>
</VerticalStackLayout>
<Grid IsVisible="{Binding IsSubMenuVisible}" BackgroundColor="Grey" HeightRequest="125" WidthRequest="155" Grid.Column="0" RowDefinitions="*,*,*,*">
<Grid IsVisible="{Binding IsSubMenuVisible}" BackgroundColor="Grey" HeightRequest="125" WidthRequest="155" Grid.Column="0" RowDefinitions="*,*,*">
<Button Grid.Row="0" Text="Ajouter à une playlist" Clicked="ShowPlaylistMenu"/>
<Button Grid.Row="1" Text="Supprimer" Clicked="RemoveCustomTitle"/>
<Button Grid.Row="2" Text="Renommer" Clicked="RenameCustomTitle"/>
<Button Grid.Row="3" Text="Changer l'image" Clicked="ChangeImage"/>
</Grid>
<ScrollView Grid.Column="1" IsVisible="{Binding IsPlaylistMenuVisible}" BackgroundColor="Grey" WidthRequest="150" HeightRequest="200">

@ -34,7 +34,6 @@ namespace Linaris
void ResetAll(object sender, EventArgs e)
{
ResetSubMenus(sender, e);
ResetRenaming(sender, e);
}
void ResetSubMenus(object sender, EventArgs e)
@ -45,15 +44,6 @@ namespace Linaris
}
ResetPlaylistMenu(sender, e);
}
void ResetRenaming(object sender, EventArgs e)
{
foreach (var CustomTitle in customTitles)
{
CustomTitle.IsRenaming = false;
CustomTitle.Name = CustomTitle.NewName;
}
}
void ResetPlaylistMenu(object sender, EventArgs e)
{
@ -207,34 +197,6 @@ namespace Linaris
// Change methods
void RenameCustomTitle(object sender, EventArgs e)
{
ResetSubMenus(sender, e);
if (sender is Button button)
{
if (button.BindingContext is CustomTitle customTitle)
{
if (!customTitle.IsRenaming)
{
ResetRenaming(sender, e);
customTitle.IsRenaming = true;
}
else
{
ResetRenaming(sender, e);
}
}
}
else if (sender is Entry entry)
{
if (entry.BindingContext is CustomTitle customTitle)
{
ResetRenaming(sender, e);
customTitle.Name = customTitle.NewName;
}
}
}
private async void ChangeImage(object sender, EventArgs e)
{
var result = await FilePicker.PickAsync(new PickOptions

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

@ -35,7 +35,6 @@ public partial class PlaylistsPage : ContentPage
async void AddPlaylist(object sender, EventArgs e)
{
await Navigation.PushModalAsync(new AddPlaylistPage());
}

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

@ -53,21 +53,6 @@ public class CustomTitle : Title, INotifyPropertyChanged
private bool isPlaylistMenuVisible = false;
public bool IsRenaming
{
get => isRenaming;
set
{
if (isRenaming != value)
{
isRenaming = value;
}
OnPropertyChanged();
}
}
private bool isRenaming = false;
public bool IsNewPlaylistMenuVisible
{
get => isNewPlaylistMenuVisible;

@ -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))
{
@ -205,7 +216,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));
@ -232,22 +243,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);
}
}
}
@ -259,7 +278,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));
@ -277,7 +296,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");
@ -307,13 +326,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)
));
@ -329,8 +349,7 @@ public class LinqXmlSerialization : IDataManager
{
ArtistsFile.Save(writer);
}
}
}*/
}
public void LoadCustomTitles()
@ -400,7 +419,7 @@ public class LinqXmlSerialization : IDataManager
public void LoadAlbums()
{
if (!File.Exists(XMLFILEALBUMS))
/*if (!File.Exists(XMLFILEALBUMS))
{
XDocument AlbumFile = new XDocument();
Album a1 = new Album();
@ -412,7 +431,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));
@ -442,28 +461,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),
@ -471,7 +497,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));
@ -484,12 +510,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();
@ -547,12 +573,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),
@ -573,7 +681,7 @@ public class LinqXmlSerialization : IDataManager
{
InfosFile.Save(writer);
}
}
}*/
}
public static Genre GetGenreByName(string genre)
{
@ -633,7 +741,7 @@ public class LinqXmlSerialization : IDataManager
return null;
}
public CustomTitle? GetCustomTitleByUrl(string custom)
public CustomTitle? GetCustomTitleByName(string custom)
{
foreach(CustomTitle customTitle in customTitles)
{
@ -705,9 +813,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;
@ -981,11 +1089,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;
}

@ -30,17 +30,6 @@ public class Title
private string name = Manager.DEFAULT_NAME;
public string NewName
{
get => newName;
set
{
newName = value;
}
}
private string newName = Manager.DEFAULT_NAME;
public string ImageURL
{
get => imageURL;
@ -81,7 +70,6 @@ public class Title
public Title(string nom, string file_Name, string informations)
{
Name = nom;
NewName = nom;
ImageURL = file_Name;
Information = informations;
}

Loading…
Cancel
Save