système de sauvegarde et recup fonctionnel

pull/8/head
Vivien DUFOUR 2 years ago
parent 9fae7086a2
commit a922fe3154

@ -71,7 +71,7 @@ namespace MusiLib.DataContractPersistance
} }
} }
public void sauvegardeFavori(Partition fav) public void sauvegardeFavoriAdd(Partition fav)
{ {
var favorisUtilisateursSerializer = new DataContractSerializer(typeof(DataToPersist)); var favorisUtilisateursSerializer = new DataContractSerializer(typeof(DataToPersist));
@ -105,5 +105,44 @@ namespace MusiLib.DataContractPersistance
Debug.WriteLine("Nouveau favori sauvegardé !"); Debug.WriteLine("Nouveau favori sauvegardé !");
} }
public void sauvegardeFavoriRemove(Partition fav)
{
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<Partition> favoris = new List<Partition>();
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;
foreach(var f in favoris)
{
Console.WriteLine(f.Nom);
}
favorisUtilisateursSerializer.WriteObject(favorisUtilisateursStream, data);
}
Debug.WriteLine("Favori supprimé de la sauvegarde !");
}
} }
} }

@ -12,6 +12,8 @@ namespace MusiLib.Model
void sauvegardeDonnees(List<Partition> p, List<Utilisateur> u, List<Partition> f); void sauvegardeDonnees(List<Partition> p, List<Utilisateur> u, List<Partition> f);
void sauvegardeFavori(Partition fav); void sauvegardeFavoriAdd(Partition fav);
void sauvegardeFavoriRemove(Partition fav);
} }
} }

@ -53,9 +53,14 @@ namespace MusiLib.Model
Persistance.sauvegardeDonnees(partitions, utilisateurs, favoris); Persistance.sauvegardeDonnees(partitions, utilisateurs, favoris);
} }
public void sauvegardeFavori(Partition fav) public void sauvegardeFavoriAdd(Partition fav)
{ {
Persistance.sauvegardeFavori(fav); Persistance.sauvegardeFavoriAdd(fav);
}
public void sauvegardeFavoriRemove(Partition fav)
{
Persistance.sauvegardeFavoriRemove(fav);
} }
} }

@ -50,7 +50,12 @@ namespace MusiLib.Stub
} }
public void sauvegardeFavori(Partition fav) public void sauvegardeFavoriAdd(Partition fav)
{
}
public void sauvegardeFavoriRemove(Partition fav)
{ {
} }

@ -62,7 +62,10 @@ public partial class Favoris : ContentPage, IAllowClick
foreach (Partition favoris in partitionsFiltrees) foreach (Partition favoris in partitionsFiltrees)
{ {
int indicePartition = MyManager.partitions.IndexOf(favoris); /*int indicePartition = MyManager.partitions.IndexOf(favoris);*/
string nomFavori = favoris.Nom;
int indicePartition = MyManager.partitions.FindIndex(partition => partition.Nom == nomFavori);
ImageButton imageButton = new ImageButton ImageButton imageButton = new ImageButton
{ {

@ -85,7 +85,7 @@ public partial class PartitionView : ContentPage
private void InitializeButton() private void InitializeButton()
{ {
if (MyManager.favoris.Contains(MyManager.partitions[IdTab])) if (MyManager.favoris.Any(favori => favori.Nom == MyManager.partitions[IdTab].Nom))
{ {
favoriButton.Source = "etoile.png"; favoriButton.Source = "etoile.png";
} }
@ -99,15 +99,16 @@ public partial class PartitionView : ContentPage
{ {
ImageButton button = (ImageButton)sender; ImageButton button = (ImageButton)sender;
if (!MyManager.favoris.Contains(MyManager.partitions[IdTab])) if (!MyManager.favoris.Any(favori => favori.Nom == MyManager.partitions[IdTab].Nom))
{ {
MyManager.favoris.Add(MyManager.partitions[IdTab]); MyManager.favoris.Add(MyManager.partitions[IdTab]);
MyManager.sauvegardeFavori(MyManager.partitions[IdTab]); MyManager.sauvegardeFavoriAdd(MyManager.partitions[IdTab]);
button.Source = "etoile.png"; button.Source = "etoile.png";
} }
else else
{ {
MyManager.favoris.Remove(MyManager.partitions[IdTab]); MyManager.favoris.RemoveAll(f => f.Nom == MyManager.partitions[IdTab].Nom);
MyManager.sauvegardeFavoriRemove(MyManager.partitions[IdTab]);
button.Source = "etoile_vide.png"; button.Source = "etoile_vide.png";
} }
} }

Loading…
Cancel
Save