diff --git a/MangaMap/App.xaml.cs b/MangaMap/App.xaml.cs index d992022..bc05b10 100644 --- a/MangaMap/App.xaml.cs +++ b/MangaMap/App.xaml.cs @@ -24,6 +24,7 @@ public partial class App : Application MyManager.charger(); MyManager.Admins.Add(MyAdmin); + //MyManager.UtilisateurActuel = MyManager.charger(); MainPage = new AppShell(); diff --git a/MangaMap/Model/Manager.cs b/MangaMap/Model/Manager.cs index 223bb2b..e2d2e6a 100644 --- a/MangaMap/Model/Manager.cs +++ b/MangaMap/Model/Manager.cs @@ -30,9 +30,24 @@ namespace MangaMap.Model Admins = new List(); Utilisateurs = new List(); Oeuvres = new List(); - UtilisateurActuel = null; + UtilisateurActuel = new Utilisateur(); } + /*public Utilisateur charger() + { + var donnees = Persistance.chargeDonne(); + foreach (var item in donnees.Item1) + { + Oeuvres.Add(item); + } + Utilisateurs.AddRange(donnees.Item2); + + // récupérer le premier utilisateur de la liste Utilisateurs : + Utilisateur utilisateurActuel = Utilisateurs.FirstOrDefault(); + + return utilisateurActuel; // Renvoyez l'utilisateur actuel + }*/ + public void charger() { var donne = Persistance.chargeDonne(); @@ -43,6 +58,8 @@ namespace MangaMap.Model Utilisateurs.AddRange(donne.Item2); } + + public void sauvegarder() { Persistance.sauvegarder(Oeuvres, Utilisateurs); diff --git a/MangaMap/Model/Utilisateur.cs b/MangaMap/Model/Utilisateur.cs index c0b79c1..750614a 100644 --- a/MangaMap/Model/Utilisateur.cs +++ b/MangaMap/Model/Utilisateur.cs @@ -1,50 +1,57 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.Serialization; -using System.Text; -using System.Threading.Tasks; - -namespace MangaMap.Model -{ - [DataContract] - public class Utilisateur : Personne - { - [DataMember] - public string nom { get; private set; } - [DataMember] - public string prenom { get; private set; } - [DataMember] - public int age { get; private set; } - [DataMember] - public List ListeOeuvreEnVisionnage { get; set; } - [DataMember] - public List ListeOeuvreDejaVu { get; private set; } - [DataMember] - public List ListeOeuvrePourPlusTard { get; private set; } - [DataMember] - public List ListeOeuvreFavorites { get; private set; } - - public Utilisateur(string email, string pseudo, string mdp, string nom, string prenom, int age) - { - Email = email; - Pseudo = pseudo; - MotDePasse = mdp; - this.nom = nom; - this.prenom = prenom; - this.age = age; - - ListeOeuvreEnVisionnage = new List(); - ListeOeuvreDejaVu = new List(); - ListeOeuvrePourPlusTard = new List(); - ListeOeuvreFavorites = new List(); - } - - public void SupprimerUtilisateur() - { - this.nom = null; - this.prenom = null; - this.age = 0; - } - } +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Threading.Tasks; + +namespace MangaMap.Model +{ + [DataContract] + public class Utilisateur : Personne + { + [DataMember] + public string nom { get; private set; } + [DataMember] + public string prenom { get; private set; } + [DataMember] + public int age { get; private set; } + [DataMember] + public List ListeOeuvreEnVisionnage { get; set; } + [DataMember] + public List ListeOeuvreDejaVu { get; private set; } + [DataMember] + public List ListeOeuvrePourPlusTard { get; private set; } + [DataMember] + public List ListeOeuvreFavorites { get; private set; } + + public Utilisateur(string email, string pseudo, string mdp, string nom, string prenom, int age) + { + Email = email; + Pseudo = pseudo; + MotDePasse = mdp; + this.nom = nom; + this.prenom = prenom; + this.age = age; + + ListeOeuvreEnVisionnage = new List(); + ListeOeuvreDejaVu = new List(); + ListeOeuvrePourPlusTard = new List(); + ListeOeuvreFavorites = new List(); + } + + public Utilisateur() { + ListeOeuvreEnVisionnage = new List(); + ListeOeuvreDejaVu = new List(); + ListeOeuvrePourPlusTard = new List(); + ListeOeuvreFavorites = new List(); + } + + public void SupprimerUtilisateur() + { + this.nom = null; + this.prenom = null; + this.age = 0; + } + } } \ No newline at end of file diff --git a/MangaMap/Stub/DataToPersist.cs b/MangaMap/Stub/DataToPersist.cs index 2e5386e..ef26f80 100644 --- a/MangaMap/Stub/DataToPersist.cs +++ b/MangaMap/Stub/DataToPersist.cs @@ -12,5 +12,6 @@ namespace MangaMap.Stub { public List Oeuvres { get; set; } = new List(); public List Utilisateurs { get; set; } = new List(); + } } diff --git a/MangaMap/Stub/Stub.cs b/MangaMap/Stub/Stub.cs index 7da9893..25c19a1 100644 --- a/MangaMap/Stub/Stub.cs +++ b/MangaMap/Stub/Stub.cs @@ -17,7 +17,7 @@ namespace MangaMap.Stub List l1 = new List(); List l2 = new List(); - Utilisateur u1 = new Utilisateur("test@test.ts", "Pseudo1", "MotDePasse123", "Jean", "Baptiste", 12); + Utilisateur u1 = new Utilisateur("test@test.tst", "Pseudo1", "MotDePasse123", "Jean", "Baptiste", 12); Utilisateur u2 = new Utilisateur("test@test.ts", "Pseudo2", "MotDePasse123", "Baptiste", "Jean", 12); Utilisateur u3 = new Utilisateur("test@test.ts", "Pseudo3", "MotDePasse123", "David", "Marc", 12); List genres = new List(); @@ -29,6 +29,8 @@ namespace MangaMap.Stub l1.Add(o1); l1.Add(o2); l2.Add(u1); l2.Add(u2); l2.Add(u3); + u1.ListeOeuvreEnVisionnage.Add(o1); + return (l1, l2); } diff --git a/MangaMap/Views/FicheAnime.xaml.cs b/MangaMap/Views/FicheAnime.xaml.cs index 2cda192..ea5f9ac 100644 --- a/MangaMap/Views/FicheAnime.xaml.cs +++ b/MangaMap/Views/FicheAnime.xaml.cs @@ -1,6 +1,7 @@ namespace MangaMap.Views; using Model; using System.ComponentModel; +using System.Diagnostics; using System.Xml.Linq; public partial class ficheAnime : ContentPage, INotifyPropertyChanged @@ -27,6 +28,8 @@ public partial class ficheAnime : ContentPage, INotifyPropertyChanged this.BindingContext = this; } + + public async void AjouterListe(object sender, EventArgs e) { if (my_manager.UtilisateurActuel == null) @@ -35,11 +38,46 @@ public partial class ficheAnime : ContentPage, INotifyPropertyChanged return; } - my_manager.UtilisateurActuel.ListeOeuvreEnVisionnage.Add(AnimeModel); - // Naviguez vers la page de la fiche d'anime en passant l'objet sélectionné + string selectedOption = await DisplayActionSheet("Ajouter à quelle liste ?", "Annuler", null, "En Visionnage", "Déjà Vu", "Pour Plus Tard", "Favoris"); + + if (selectedOption == "Annuler") + return; + + Debug.WriteLine("Selected Option: " + selectedOption); + + // Ajouter l'anime à la liste sélectionnée + switch (selectedOption) + { + case "En Visionnage": + Debug.WriteLine("Ajout à la liste En Visionnage"); + my_manager.UtilisateurActuel.ListeOeuvreEnVisionnage.Add(AnimeModel); + break; + case "Déjà Vu": + Debug.WriteLine("Ajout à la liste Déjà Vu"); + my_manager.UtilisateurActuel.ListeOeuvreDejaVu.Add(AnimeModel); + break; + case "Pour Plus Tard": + Debug.WriteLine("Ajout à la liste Pour Plus Tard"); + my_manager.UtilisateurActuel.ListeOeuvrePourPlusTard.Add(AnimeModel); + break; + case "Favoris": + Debug.WriteLine("Ajout à la liste Favoris"); + my_manager.UtilisateurActuel.ListeOeuvreFavorites.Add(AnimeModel); + break; + } + + foreach (Oeuvre oeuvre in my_manager.UtilisateurActuel.ListeOeuvreEnVisionnage) + { + Debug.WriteLine("Titre de l'oeuvre : " + oeuvre.Nom); + // Faites d'autres opérations avec chaque élément de la liste + } + + my_manager.sauvegarder(); + await Navigation.PushAsync(new listPage()); } + private void SetNote(float note) { note = (int)note; // Tronquer à un entier car nous ne gérons actuellement pas les demi-étoiles diff --git a/MangaMap/Views/listPage.xaml b/MangaMap/Views/listPage.xaml index 48591f9..adae05b 100644 --- a/MangaMap/Views/listPage.xaml +++ b/MangaMap/Views/listPage.xaml @@ -2,7 +2,8 @@ xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:MangaMap" x:Class="MangaMap.Views.listPage" - BackgroundColor="Black"> + BackgroundColor="Black" + x:Name="listPage"> @@ -39,8 +40,7 @@ - - + @@ -52,7 +52,7 @@ - + diff --git a/MangaMap/Views/listPage.xaml.cs b/MangaMap/Views/listPage.xaml.cs index 98a7c5a..29066e2 100644 --- a/MangaMap/Views/listPage.xaml.cs +++ b/MangaMap/Views/listPage.xaml.cs @@ -11,4 +11,7 @@ public partial class listPage : ContentPage BindingContext = my_manager.UtilisateurActuel; } + + + } \ No newline at end of file