From 56c6fe32386492f152e272b45b1cab148cb5e93c Mon Sep 17 00:00:00 2001 From: V J Date: Mon, 22 May 2023 17:47:18 +0200 Subject: [PATCH] data binding liste --- MangaMap/Model/Manager.cs | 5 ++ MangaMap/Model/Utilisateur.cs | 2 +- .../{Model => Stub}/IPersistanceManager.cs | 5 +- MangaMap/Views/FicheAnime.xaml.cs | 15 ++++- MangaMap/Views/ficheAnime.xaml | 27 +++++---- MangaMap/Views/listPage.xaml | 60 ++++--------------- MangaMap/Views/listPage.xaml.cs | 8 ++- MangaMap/Views/loginPage.xaml.cs | 2 + MangaMap/Views/signUpPage.xaml.cs | 1 + 9 files changed, 58 insertions(+), 67 deletions(-) rename MangaMap/{Model => Stub}/IPersistanceManager.cs (68%) diff --git a/MangaMap/Model/Manager.cs b/MangaMap/Model/Manager.cs index 7eb0d19..223bb2b 100644 --- a/MangaMap/Model/Manager.cs +++ b/MangaMap/Model/Manager.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using MangaMap.Stub; namespace MangaMap.Model { @@ -13,10 +14,13 @@ namespace MangaMap.Model public List Utilisateurs { get; private set; } public List Oeuvres { get; private set; } + public Utilisateur UtilisateurActuel { get; set; } + public Manager(IPersistanceManager Pers) { Admins = new List(); Utilisateurs = new List(); Oeuvres = new List(); + UtilisateurActuel = null; Persistance = Pers; } @@ -26,6 +30,7 @@ namespace MangaMap.Model Admins = new List(); Utilisateurs = new List(); Oeuvres = new List(); + UtilisateurActuel = null; } public void charger() diff --git a/MangaMap/Model/Utilisateur.cs b/MangaMap/Model/Utilisateur.cs index 7b58b3e..b3d6a42 100644 --- a/MangaMap/Model/Utilisateur.cs +++ b/MangaMap/Model/Utilisateur.cs @@ -17,7 +17,7 @@ namespace MangaMap.Model [DataMember] public int age { get; private set; } [DataMember] - public List ListeOeuvreEnVisionnage { get; private set; } + public List ListeOeuvreEnVisionnage { get; set; } [DataMember] public List ListeOeuvreDejaVu { get; private set; } [DataMember] diff --git a/MangaMap/Model/IPersistanceManager.cs b/MangaMap/Stub/IPersistanceManager.cs similarity index 68% rename from MangaMap/Model/IPersistanceManager.cs rename to MangaMap/Stub/IPersistanceManager.cs index 4c5f07d..d12d753 100644 --- a/MangaMap/Model/IPersistanceManager.cs +++ b/MangaMap/Stub/IPersistanceManager.cs @@ -3,13 +3,14 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using MangaMap.Model; -namespace MangaMap.Model +namespace MangaMap.Stub { public interface IPersistanceManager { (List, List) chargeDonne(); - void sauvegarder(List o , List u); + void sauvegarder(List o, List u); } } diff --git a/MangaMap/Views/FicheAnime.xaml.cs b/MangaMap/Views/FicheAnime.xaml.cs index 98090ee..2cda192 100644 --- a/MangaMap/Views/FicheAnime.xaml.cs +++ b/MangaMap/Views/FicheAnime.xaml.cs @@ -6,7 +6,7 @@ using System.Xml.Linq; public partial class ficheAnime : ContentPage, INotifyPropertyChanged { - public Manager DataManager { get; set; } + public Manager my_manager => (App.Current as App).MyManager; public Oeuvre AnimeModel { get; set; } public ficheAnime() @@ -27,6 +27,19 @@ public partial class ficheAnime : ContentPage, INotifyPropertyChanged this.BindingContext = this; } + public async void AjouterListe(object sender, EventArgs e) + { + if (my_manager.UtilisateurActuel == null) + { + await DisplayAlert("Erreur", "Vous n'êtes pas connecté.", "OK"); + return; + } + + my_manager.UtilisateurActuel.ListeOeuvreEnVisionnage.Add(AnimeModel); + // Naviguez vers la page de la fiche d'anime en passant l'objet sélectionné + 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/ficheAnime.xaml b/MangaMap/Views/ficheAnime.xaml index a7e4538..73bf032 100644 --- a/MangaMap/Views/ficheAnime.xaml +++ b/MangaMap/Views/ficheAnime.xaml @@ -29,19 +29,20 @@