diff --git a/Sources/Console/Console.csproj b/Sources/Console/Console.csproj
index e171fb5..b491ec4 100644
--- a/Sources/Console/Console.csproj
+++ b/Sources/Console/Console.csproj
@@ -8,11 +8,13 @@
-
+
+
+
-
+
diff --git a/Sources/Linaris.sln b/Sources/Linaris.sln
index e01685e..45bb19a 100644
--- a/Sources/Linaris.sln
+++ b/Sources/Linaris.sln
@@ -4,12 +4,15 @@ Microsoft Visual Studio Solution File, Format Version 12.00
VisualStudioVersion = 17.0.31611.283
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Linaris", "Linaris\Linaris.csproj", "{9E6281F7-95F6-472C-B268-894CE377C8A9}"
+ ProjectSection(ProjectDependencies) = postProject
+ {AA1DB94B-8273-437F-A07A-BB1F5F0D278D} = {AA1DB94B-8273-437F-A07A-BB1F5F0D278D}
+ EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Console", "Console\Console.csproj", "{BB50C1E3-5A9A-40AF-8CD7-55B41064290B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Model", "Model\Model.csproj", "{AA1DB94B-8273-437F-A07A-BB1F5F0D278D}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUnitaires", "TestUnitaires\TestUnitaires.csproj", "{8B0671CF-1302-4244-8837-916E632007E2}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUnitaires", "TestUnitaires\TestUnitaires.csproj", "{8B0671CF-1302-4244-8837-916E632007E2}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/Sources/Linaris/App.xaml.cs b/Sources/Linaris/App.xaml.cs
index 8aa73c9..32a6c67 100644
--- a/Sources/Linaris/App.xaml.cs
+++ b/Sources/Linaris/App.xaml.cs
@@ -1,8 +1,16 @@
-namespace Linaris;
+using Model.Serialization;
+using Model.Stub;
+using Model;
+
+namespace Linaris;
public partial class App : Application
{
- public App()
+ static IDataManager DataManager = new LinqXmlSerialization();
+
+ public static Manager Manager = new Manager(DataManager);
+
+ public App()
{
InitializeComponent();
diff --git a/Sources/Linaris/Linaris.csproj b/Sources/Linaris/Linaris.csproj
index 244b651..6dd909a 100644
--- a/Sources/Linaris/Linaris.csproj
+++ b/Sources/Linaris/Linaris.csproj
@@ -59,6 +59,10 @@
+
+
+
+
AlbumPage.xaml
diff --git a/Sources/Linaris/LocalFilesPage.xaml b/Sources/Linaris/LocalFilesPage.xaml
index 397027f..155a70b 100644
--- a/Sources/Linaris/LocalFilesPage.xaml
+++ b/Sources/Linaris/LocalFilesPage.xaml
@@ -1,76 +1,30 @@
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
-
-
-
\ No newline at end of file
diff --git a/Sources/Linaris/LocalFilesPage.xaml.cs b/Sources/Linaris/LocalFilesPage.xaml.cs
index bf985dd..32f4d24 100644
--- a/Sources/Linaris/LocalFilesPage.xaml.cs
+++ b/Sources/Linaris/LocalFilesPage.xaml.cs
@@ -1,9 +1,29 @@
+using Model;
+using Model.Serialization;
+using Model.Stub;
+using System.Collections.ObjectModel;
+
namespace Linaris;
public partial class LocalFilesPage : ContentPage
{
+
+ private ObservableCollection customTitles = App.Manager.GetCustomTitles();
+
+ public ObservableCollection CustomTitles
+ {
+ get => customTitles;
+ }
+
public LocalFilesPage()
{
InitializeComponent();
+ BindingContext = this;
+ }
+
+ void AddCustomTitle(object sender, EventArgs e)
+ {
+ App.Manager.AddCustomTitle(new CustomTitle());
+ customTitles = App.Manager.GetCustomTitles();
}
}
diff --git a/Sources/Model/IDataManager.cs b/Sources/Model/IDataManager.cs
index af316ba..179d610 100644
--- a/Sources/Model/IDataManager.cs
+++ b/Sources/Model/IDataManager.cs
@@ -1,4 +1,6 @@
-namespace Model;
+using System.Collections.ObjectModel;
+
+namespace Model;
public interface IDataManager
{
@@ -24,15 +26,15 @@ public interface IDataManager
void AddInfoTitles(List infoTitlesList);
// Read
- List GetCustomTitles();
+ ObservableCollection GetCustomTitles();
CustomTitle? GetCustomTitleByUrl(string custom);
- List GetInfoTitles();
+ ObservableCollection GetInfoTitles();
InfoTitle? GetInfoTitleByUrl(string url);
- List GetAlbums();
+ ObservableCollection GetAlbums();
Album? GetAlbumByUrl(string url);
@@ -40,7 +42,7 @@ public interface IDataManager
Artist? GetArtistByName(string name);
- List GetPlaylists();
+ ObservableCollection GetPlaylists();
Playlist? GetPlaylistByUrl(string url);
diff --git a/Sources/Model/Manager.cs b/Sources/Model/Manager.cs
index 008c17e..1cf919d 100644
--- a/Sources/Model/Manager.cs
+++ b/Sources/Model/Manager.cs
@@ -1,4 +1,6 @@
-namespace Model.Stub;
+using System.Collections.ObjectModel;
+
+namespace Model.Stub;
public class Manager
{
@@ -14,43 +16,43 @@ public class Manager
public IDataManager DataManager { get; set; }
- private List albums;
+ private ObservableCollection albums;
- public IEnumerable Albums
+ public ObservableCollection Albums
{
get
{
- return new List(albums);
+ return new ObservableCollection(albums);
}
}
- private List customTitles;
+ private ObservableCollection customTitles;
- public IEnumerable CustomTitles
+ public ObservableCollection CustomTitles
{
get
{
- return new List(customTitles);
+ return new ObservableCollection(customTitles);
}
}
- private List infoTitles;
+ private ObservableCollection infoTitles;
- public IEnumerable InfoTitles
+ public ObservableCollection InfoTitles
{
get
{
- return new List(infoTitles);
+ return new ObservableCollection(infoTitles);
}
}
- private List playlists;
+ private ObservableCollection playlists;
- public IEnumerable Playlists
+ public ObservableCollection Playlists
{
get
{
- return new List(playlists);
+ return new ObservableCollection(playlists);
}
}
@@ -129,22 +131,22 @@ public class Manager
playlists = DataManager.GetPlaylists();
}
- public IEnumerable GetPlaylists()
+ public ObservableCollection GetPlaylists()
{
return DataManager.GetPlaylists();
}
- public IEnumerable GetAlbums()
+ public ObservableCollection GetAlbums()
{
return DataManager.GetAlbums();
}
- public IEnumerable GetCustomTitles()
+ public ObservableCollection GetCustomTitles()
{
return DataManager.GetCustomTitles();
}
- public IEnumerable GetInfoTitles()
+ public ObservableCollection GetInfoTitles()
{
return DataManager.GetInfoTitles();
}
diff --git a/Sources/Model/Serialization/LINQ_XML_Serialization.cs b/Sources/Model/Serialization/LINQ_XML_Serialization.cs
index 63b9261..4d5336f 100644
--- a/Sources/Model/Serialization/LINQ_XML_Serialization.cs
+++ b/Sources/Model/Serialization/LINQ_XML_Serialization.cs
@@ -8,12 +8,13 @@ using System.Xml.Serialization;
using static System.Reflection.Metadata.BlobBuilder;
using System.Reflection.Metadata;
using System.IO;
+using System.Collections.ObjectModel;
namespace Model.Serialization;
public class LinqXmlSerialization : IDataManager
{
- private static string XMLPATH = Path.Combine(Environment.CurrentDirectory, "Data");
+ private static string XMLPATH = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Data");
private static string XMLFILEPLAYLISTS = Path.Combine(XMLPATH, "playlists.xml");
@@ -37,41 +38,41 @@ public class LinqXmlSerialization : IDataManager
private List albums;
- public IEnumerable Albums
+ public ObservableCollection Albums
{
get
{
- return new List(albums);
+ return new ObservableCollection(albums);
}
}
private List playlists;
- public IEnumerable Playlists
+ public ObservableCollection Playlists
{
get
{
- return new List(playlists);
+ return new ObservableCollection(playlists);
}
}
private List infoTitles;
- public IEnumerable InfoTitles
+ public ObservableCollection InfoTitles
{
get
{
- return new List(infoTitles);
+ return new ObservableCollection(infoTitles);
}
}
private List customTitles;
- public IEnumerable CustomTitles
+ public ObservableCollection CustomTitles
{
get
{
- return new List(customTitles);
+ return new ObservableCollection(customTitles);
}
}
@@ -115,9 +116,9 @@ public class LinqXmlSerialization : IDataManager
playlists.Add(playlist);
}
- public List GetAlbums()
+ public ObservableCollection GetAlbums()
{
- return albums;
+ return Albums;
}
public List GetArtists()
@@ -125,19 +126,19 @@ public class LinqXmlSerialization : IDataManager
return artists;
}
- public List GetCustomTitles()
+ public ObservableCollection GetCustomTitles()
{
- return customTitles;
+ return CustomTitles;
}
- public List GetInfoTitles()
+ public ObservableCollection GetInfoTitles()
{
- return infoTitles;
+ return InfoTitles;
}
- public List GetPlaylists()
+ public ObservableCollection GetPlaylists()
{
- return playlists;
+ return Playlists;
}
public void RemoveAlbum(Album album)
diff --git a/Sources/Model/Stub/StubAlbum.cs b/Sources/Model/Stub/StubAlbum.cs
index 3de4e1a..943227a 100644
--- a/Sources/Model/Stub/StubAlbum.cs
+++ b/Sources/Model/Stub/StubAlbum.cs
@@ -1,4 +1,5 @@
-using System.Linq;
+using System.Collections.ObjectModel;
+using System.Linq;
namespace Model.Stub;
@@ -14,12 +15,12 @@ public class StubAlbum
private readonly StubArtist stubArtist;
- public List Albums
+ public ObservableCollection Albums
{
get => albums;
}
- private readonly List albums;
+ private readonly ObservableCollection albums;
public StubAlbum()
{
@@ -29,13 +30,13 @@ public class StubAlbum
Album Album2 = new Album("la jsp", "oui.png", StubArtist.GetArtistByName("Critien") ?? new Artist("Critien"), "c'est la couri", "plein d'infos2");
Album Album3 = new Album("la pas le temps", "non.png", StubArtist.GetArtistByName("Poulifer") ?? new Artist("Poulifer"), "c'est pas la street", "plein d'infos3");
Album Album4 = new Album("la pas le choix", "peutetre.png", StubArtist.GetArtistByName("Credian") ?? new Artist("Credian"), "c'est la parterre", "plein d'infos4");
- albums = new List()
+ albums = new ObservableCollection()
{
Album1, Album2, Album3, Album4
};
}
- public List GetAlbums()
+ public ObservableCollection GetAlbums()
{
return albums;
}
diff --git a/Sources/Model/Stub/StubCustomTitle.cs b/Sources/Model/Stub/StubCustomTitle.cs
index 2886a0b..5d77320 100644
--- a/Sources/Model/Stub/StubCustomTitle.cs
+++ b/Sources/Model/Stub/StubCustomTitle.cs
@@ -1,27 +1,38 @@
-namespace Model.Stub;
+using System.Collections.ObjectModel;
+
+namespace Model.Stub;
public class StubCustomTitle
{
- public List CustomTitles
+ public ObservableCollection CustomTitles
{
get => customTitles;
}
- private readonly List customTitles;
+ private readonly ObservableCollection customTitles;
public StubCustomTitle()
{
- CustomTitle Custom1 = new CustomTitle("MaMusique", "url1.png", "info1", "chemin1");
- CustomTitle Custom2 = new CustomTitle("MusiqueGeniale", "url2.png", "info2", "chemin2");
- CustomTitle Custom3 = new CustomTitle("custom3", "url3.png", "info3", "chemin3");
- customTitles = new List()
+ CustomTitle Custom1 = new CustomTitle("MaMusique", "mp3.png", "info1", "chemin1");
+ CustomTitle Custom2 = new CustomTitle("MusiqueGeniale", "wav.png", "info2", "chemin2");
+ CustomTitle Custom3 = new CustomTitle("custom3", "midi.png", "info3", "chemin3");
+ CustomTitle Custom4 = new CustomTitle("custom4", "ogg.png", "info4", "chemin4");
+ CustomTitle Custom5 = new CustomTitle("custom5", "mp3.png", "info5", "chemin5");
+ CustomTitle Custom6 = new CustomTitle("custom6", "mp3.png", "info6", "chemin6");
+ CustomTitle Custom7 = new CustomTitle("custom7", "wav.png", "info7", "chemin7");
+ CustomTitle Custom8 = new CustomTitle("custom8", "ogg.png", "info8", "chemin8");
+ CustomTitle Custom9 = new CustomTitle("custom9", "mp3.png", "info9", "chemin9");
+ CustomTitle Custom10 = new CustomTitle("custom10", "wav.png", "info10", "chemin10");
+ CustomTitle Custom11 = new CustomTitle("custom11", "mp3.png", "info11", "chemin11");
+
+ customTitles = new ObservableCollection()
{
- Custom1, Custom2, Custom3
+ Custom1, Custom2, Custom3, Custom4, Custom5, Custom6, Custom7, Custom8, Custom9, Custom10, Custom11
};
}
- public List GetCustomTitles()
+ public ObservableCollection GetCustomTitles()
{
return customTitles;
}
diff --git a/Sources/Model/Stub/StubInfoTitle.cs b/Sources/Model/Stub/StubInfoTitle.cs
index 3ee4cf2..ae1ac9f 100644
--- a/Sources/Model/Stub/StubInfoTitle.cs
+++ b/Sources/Model/Stub/StubInfoTitle.cs
@@ -1,4 +1,6 @@
-namespace Model.Stub;
+using System.Collections.ObjectModel;
+
+namespace Model.Stub;
public class StubInfoTitle
{
@@ -13,12 +15,12 @@ public class StubInfoTitle
private readonly StubArtist stubArtist;
- public List InfoTitles
+ public ObservableCollection InfoTitles
{
get => infoTitles;
}
- private readonly List infoTitles;
+ private readonly ObservableCollection infoTitles;
public StubInfoTitle()
{
@@ -27,13 +29,13 @@ public class StubInfoTitle
InfoTitle InfoTitle1 = new InfoTitle("info1", "url1.png", "info1", StubArtist.GetArtistByName("Gouriet") ?? new Artist("Gouriet"), "desc1", Genre.K_POP);
InfoTitle InfoTitle2 = new InfoTitle("info2", "url2.png", "info2", StubArtist.GetArtistByName("Poulifer") ?? new Artist("Poulifer"), "desc2", Genre.GOSPEL);
- infoTitles = new List()
+ infoTitles = new ObservableCollection()
{
InfoTitle1, InfoTitle2
};
}
- public List GetInfoTitles()
+ public ObservableCollection GetInfoTitles()
{
return infoTitles;
}
diff --git a/Sources/Model/Stub/StubManager.cs b/Sources/Model/Stub/StubManager.cs
index ceb463f..5ffc50b 100644
--- a/Sources/Model/Stub/StubManager.cs
+++ b/Sources/Model/Stub/StubManager.cs
@@ -1,4 +1,6 @@
-namespace Model.Stub;
+using System.Collections.ObjectModel;
+
+namespace Model.Stub;
public class StubManager : IDataManager
{
@@ -64,7 +66,7 @@ public class StubManager : IDataManager
StubPlaylist.Playlists.First().AddTitle(StubCustomTitle.CustomTitles.First());
}
- public List GetAlbums()
+ public ObservableCollection GetAlbums()
{
return StubAlbum.GetAlbums();
}
@@ -74,17 +76,17 @@ public class StubManager : IDataManager
return StubArtist.GetArtists();
}
- public List GetPlaylists()
+ public ObservableCollection GetPlaylists()
{
return StubPlaylist.GetPlaylists();
}
- public List GetCustomTitles()
+ public ObservableCollection GetCustomTitles()
{
return StubCustomTitle.GetCustomTitles();
}
- public List GetInfoTitles()
+ public ObservableCollection GetInfoTitles()
{
return StubInfoTitle.GetInfoTitles();
}
diff --git a/Sources/Model/Stub/StubPlaylist.cs b/Sources/Model/Stub/StubPlaylist.cs
index 681750d..1ae9b56 100644
--- a/Sources/Model/Stub/StubPlaylist.cs
+++ b/Sources/Model/Stub/StubPlaylist.cs
@@ -1,26 +1,28 @@
-namespace Model.Stub;
+using System.Collections.ObjectModel;
+
+namespace Model.Stub;
public class StubPlaylist
{
- public List Playlists
+ public ObservableCollection Playlists
{
get => playlists;
}
- private readonly List playlists;
+ private readonly ObservableCollection playlists;
public StubPlaylist()
{
Playlist Playlist1 = new Playlist("Playlist1", "desc1", "url1.png");
Playlist Playlist2 = new Playlist("Playlist2", "desc2", "url2.png");
- playlists = new List()
+ playlists = new ObservableCollection()
{
Playlist1, Playlist2
};
}
- public List GetPlaylists()
+ public ObservableCollection GetPlaylists()
{
return playlists;
}