diff --git a/ArchiApp.docx b/ArchiApp.docx new file mode 100644 index 0000000..720a064 Binary files /dev/null and b/ArchiApp.docx differ diff --git a/Contexte/Diagramme_paquetage.drawio b/Contexte/Diagramme_paquetage.drawio new file mode 100644 index 0000000..4731072 --- /dev/null +++ b/Contexte/Diagramme_paquetage.drawio @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contexte/Diagramme_sequence1.drawio b/Contexte/Diagramme_sequence1.drawio new file mode 100644 index 0000000..bf55216 --- /dev/null +++ b/Contexte/Diagramme_sequence1.drawio @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Contexte/Diagramme_sequence2.drawio b/Contexte/Diagramme_sequence2.drawio new file mode 100644 index 0000000..fd7c56c --- /dev/null +++ b/Contexte/Diagramme_sequence2.drawio @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/MusiLib/MusiLib/DataContractPersistance/DataContractPers.cs b/MusiLib/MusiLib/DataContractPersistance/DataContractPers.cs index 383925a..7cc8ff0 100644 --- a/MusiLib/MusiLib/DataContractPersistance/DataContractPers.cs +++ b/MusiLib/MusiLib/DataContractPersistance/DataContractPers.cs @@ -1,142 +1,142 @@ -using Microsoft.Maui.Controls.PlatformConfiguration; -using MusiLib.Model; -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Runtime.Serialization; -using System.Text; -using System.Threading.Tasks; -using System.Xml; - -namespace MusiLib.DataContractPersistance -{ - public class DataContractPers : IPersistanceManager - { +using Microsoft.Maui.Controls.PlatformConfiguration; +using MusiLib.Model; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Threading.Tasks; +using System.Xml; + +namespace MusiLib.DataContractPersistance +{ + public class DataContractPers : IPersistanceManager + { public string FilePath { get; set; } = FileSystem.AppDataDirectory; /* FileSystem.AppDataDirectory permet de renvoyez le chemin d'accès au répertoire spécifique de donnée - * ou l'application peut stocker des fichiers ou des données persistantes*/ - public string FileNameFU { get; set; } = "favorisUtilisateurs.xml"; /* déclaration des noms des fichiers stockés pour la persistance*/ - public string FileNameP { get; set; } = "partitions.xml"; - - public (List, List) chargeDonnees() /*Méthode permettant de charger les données*/ - { - var partitionsSerializer = new DataContractSerializer(typeof(List)); - var favorisUtilisateursSerializer = new DataContractSerializer(typeof(DataToPersist)); - - List partitions = new List(); - List favoris = new List(); - - using (Stream partitionsStream = File.OpenRead(Path.Combine(FilePath, "partitions.xml"))) /*Path.Combine permet de combiner plusieurs segments de chemin en une seule chaine de chemin*/ - { - partitions = partitionsSerializer.ReadObject(partitionsStream) as List; /*Serializer permet de convertir des objets */ - } - - using (Stream favorisUtilisateursStream = File.OpenRead(Path.Combine(FilePath, "favorisUtilisateurs.xml"))) - { - DataToPersist data = favorisUtilisateursSerializer.ReadObject(favorisUtilisateursStream) as DataToPersist; - favoris = data.favoris; - } - - return (partitions, favoris); - } - - - public void sauvegardeDonnees(List p, List f) /*Méthode permettant de sauvegarder les données*/ - { - var partitionsSerializer = new DataContractSerializer(typeof(List)); - var favorisUtilisateursSerializer = new DataContractSerializer(typeof(DataToPersist)); - - if (!Directory.Exists(FilePath)) - { - Debug.WriteLine("Directory créé à l'instant"); - Debug.WriteLine(Directory.GetDirectoryRoot(FilePath)); - Debug.WriteLine(FilePath); - Directory.CreateDirectory(FilePath); - } - - using (Stream partitionsStream = File.Create(Path.Combine(FilePath, FileNameP))) - { - partitionsSerializer.WriteObject(partitionsStream, p); - } - - DataToPersist data = new DataToPersist(); - data.favoris = f; - - using (Stream favorisUtilisateursStream = File.Create(Path.Combine(FilePath, FileNameFU))) - { - favorisUtilisateursSerializer.WriteObject(favorisUtilisateursStream, data); - } - } - - public void sauvegardeFavoriAdd(Partition fav) /*Méthode permettant la sauvegarde de favoris*/ - { - var favorisUtilisateursSerializer = new DataContractSerializer(typeof(DataToPersist)); - - if (!Directory.Exists(FilePath)) - { - Debug.WriteLine("Directory créé à l'instant"); - Debug.WriteLine(Directory.GetDirectoryRoot(FilePath)); - Debug.WriteLine(FilePath); - Directory.CreateDirectory(FilePath); - } - - List favoris = new List(); - using (Stream favorisUtilisateursStream = File.OpenRead(Path.Combine(FilePath, FileNameFU))) - { - DataToPersist data = favorisUtilisateursSerializer.ReadObject(favorisUtilisateursStream) as DataToPersist; - if (data != null && data.favoris != null) - { - favoris = data.favoris; - } - } - - favoris.Add(fav); - - using (Stream favorisUtilisateursStream = File.Create(Path.Combine(FilePath, FileNameFU))) - { - DataToPersist data = new DataToPersist(); - data.favoris = favoris; - favorisUtilisateursSerializer.WriteObject(favorisUtilisateursStream, data); - } - - Debug.WriteLine("Nouveau favori sauvegardé !"); - } - - public void sauvegardeFavoriRemove(Partition fav) /*Méthode permettant la sauvegarde de suppression de favoris */ - { - var favorisUtilisateursSerializer = new DataContractSerializer(typeof(DataToPersist)); - - if (!Directory.Exists(FilePath)) - { - Debug.WriteLine("Directory créé à l'instant"); - Debug.WriteLine(Directory.GetDirectoryRoot(FilePath)); - Debug.WriteLine(FilePath); - Directory.CreateDirectory(FilePath); - } - - List favoris = new List(); - using (Stream favorisUtilisateursStream = File.OpenRead(Path.Combine(FilePath, FileNameFU))) - { - DataToPersist data = favorisUtilisateursSerializer.ReadObject(favorisUtilisateursStream) as DataToPersist; - if (data != null && data.favoris != null) - { - favoris = data.favoris; - } - } - - favoris.RemoveAll(f => f.Nom == fav.Nom); - - using (Stream favorisUtilisateursStream = File.Create(Path.Combine(FilePath, FileNameFU))) - { - DataToPersist data = new DataToPersist(); - data.favoris = favoris; - favorisUtilisateursSerializer.WriteObject(favorisUtilisateursStream, data); - } - - Debug.WriteLine("Favori supprimé de la sauvegarde !"); - } - - - } + * ou l'application peut stocker des fichiers ou des données persistantes*/ + public string FileNameFU { get; set; } = "favorisUtilisateurs.xml"; /* déclaration des noms des fichiers stockés pour la persistance*/ + public string FileNameP { get; set; } = "partitions.xml"; + + public (List, List) chargeDonnees() /*Méthode permettant de charger les données*/ + { + var partitionsSerializer = new DataContractSerializer(typeof(List)); + var favorisUtilisateursSerializer = new DataContractSerializer(typeof(DataToPersist)); + + List partitions = new List(); + List favoris = new List(); + + using (Stream partitionsStream = File.OpenRead(Path.Combine(FilePath, "partitions.xml"))) /*Path.Combine permet de combiner plusieurs segments de chemin en une seule chaine de chemin*/ + { + partitions = partitionsSerializer.ReadObject(partitionsStream) as List; /*Serializer permet de convertir des objets */ + } + + using (Stream favorisUtilisateursStream = File.OpenRead(Path.Combine(FilePath, "favorisUtilisateurs.xml"))) + { + DataToPersist data = favorisUtilisateursSerializer.ReadObject(favorisUtilisateursStream) as DataToPersist; + favoris = data.favoris; + } + + return (partitions, favoris); + } + + + public void sauvegardeDonnees(List p, List f) /*Méthode permettant de sauvegarder les données*/ + { + var partitionsSerializer = new DataContractSerializer(typeof(List)); + var favorisUtilisateursSerializer = new DataContractSerializer(typeof(DataToPersist)); + + if (!Directory.Exists(FilePath)) + { + Debug.WriteLine("Directory créé à l'instant"); + Debug.WriteLine(Directory.GetDirectoryRoot(FilePath)); + Debug.WriteLine(FilePath); + Directory.CreateDirectory(FilePath); + } + + using (Stream partitionsStream = File.Create(Path.Combine(FilePath, FileNameP))) + { + partitionsSerializer.WriteObject(partitionsStream, p); + } + + DataToPersist data = new DataToPersist(); + data.favoris = f; + + using (Stream favorisUtilisateursStream = File.Create(Path.Combine(FilePath, FileNameFU))) + { + favorisUtilisateursSerializer.WriteObject(favorisUtilisateursStream, data); + } + } + + public void sauvegardeFavoriAdd(Partition fav) /*Méthode permettant la sauvegarde de favoris*/ + { + var favorisUtilisateursSerializer = new DataContractSerializer(typeof(DataToPersist)); + + if (!Directory.Exists(FilePath)) + { + Debug.WriteLine("Directory créé à l'instant"); + Debug.WriteLine(Directory.GetDirectoryRoot(FilePath)); + Debug.WriteLine(FilePath); + Directory.CreateDirectory(FilePath); + } + + List favoris = new List(); + using (Stream favorisUtilisateursStream = File.OpenRead(Path.Combine(FilePath, FileNameFU))) + { + DataToPersist data = favorisUtilisateursSerializer.ReadObject(favorisUtilisateursStream) as DataToPersist; + if (data != null && data.favoris != null) + { + favoris = data.favoris; + } + } + + favoris.Add(fav); + + using (Stream favorisUtilisateursStream = File.Create(Path.Combine(FilePath, FileNameFU))) + { + DataToPersist data = new DataToPersist(); + data.favoris = favoris; + favorisUtilisateursSerializer.WriteObject(favorisUtilisateursStream, data); + } + + Debug.WriteLine("Nouveau favori sauvegardé !"); + } + + public void sauvegardeFavoriRemove(Partition fav) /*Méthode permettant la sauvegarde de suppression de favoris */ + { + var favorisUtilisateursSerializer = new DataContractSerializer(typeof(DataToPersist)); + + if (!Directory.Exists(FilePath)) + { + Debug.WriteLine("Directory créé à l'instant"); + Debug.WriteLine(Directory.GetDirectoryRoot(FilePath)); + Debug.WriteLine(FilePath); + Directory.CreateDirectory(FilePath); + } + + List favoris = new List(); + using (Stream favorisUtilisateursStream = File.OpenRead(Path.Combine(FilePath, FileNameFU))) + { + DataToPersist data = favorisUtilisateursSerializer.ReadObject(favorisUtilisateursStream) as DataToPersist; + if (data != null && data.favoris != null) + { + favoris = data.favoris; + } + } + + favoris.RemoveAll(f => f.Nom == fav.Nom); + + using (Stream favorisUtilisateursStream = File.Create(Path.Combine(FilePath, FileNameFU))) + { + DataToPersist data = new DataToPersist(); + data.favoris = favoris; + favorisUtilisateursSerializer.WriteObject(favorisUtilisateursStream, data); + } + + Debug.WriteLine("Favori supprimé de la sauvegarde !"); + } + + + } } \ No newline at end of file diff --git a/MusiLib/MusiLib/Model/Partition.cs b/MusiLib/MusiLib/Model/Partition.cs index 538760d..a5b5553 100644 --- a/MusiLib/MusiLib/Model/Partition.cs +++ b/MusiLib/MusiLib/Model/Partition.cs @@ -10,8 +10,6 @@ namespace MusiLib.Model [DataContract] public class Partition { - [DataMember] - public static int idTotal = 0; [DataMember] public string Nom { get; private set; } [DataMember] @@ -32,7 +30,6 @@ namespace MusiLib.Model public Partition(string nom, string auteur, string complexite, string description, string instrument, string son) { Nom = nom; - IdPartition = idTotal; Auteur = auteur; Complexite = complexite; Description = description;