DataBinding #24

Merged
matheo.hersan merged 5 commits from DataBinding into master 2 years ago

@ -24,6 +24,7 @@ public partial class App : Application
MyManager.charger(); MyManager.charger();
MyManager.Admins.Add(MyAdmin); MyManager.Admins.Add(MyAdmin);
//MyManager.UtilisateurActuel = MyManager.charger();
MainPage = new AppShell(); MainPage = new AppShell();

@ -30,9 +30,24 @@ namespace MangaMap.Model
Admins = new List<Admin>(); Admins = new List<Admin>();
Utilisateurs = new List<Utilisateur>(); Utilisateurs = new List<Utilisateur>();
Oeuvres = new List<Oeuvre>(); Oeuvres = new List<Oeuvre>();
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() public void charger()
{ {
var donne = Persistance.chargeDonne(); var donne = Persistance.chargeDonne();
@ -43,6 +58,8 @@ namespace MangaMap.Model
Utilisateurs.AddRange(donne.Item2); Utilisateurs.AddRange(donne.Item2);
} }
public void sauvegarder() public void sauvegarder()
{ {
Persistance.sauvegarder(Oeuvres, Utilisateurs); Persistance.sauvegarder(Oeuvres, Utilisateurs);

@ -40,6 +40,13 @@ namespace MangaMap.Model
ListeOeuvreFavorites = new List<Oeuvre>(); ListeOeuvreFavorites = new List<Oeuvre>();
} }
public Utilisateur() {
ListeOeuvreEnVisionnage = new List<Oeuvre>();
ListeOeuvreDejaVu = new List<Oeuvre>();
ListeOeuvrePourPlusTard = new List<Oeuvre>();
ListeOeuvreFavorites = new List<Oeuvre>();
}
public void SupprimerUtilisateur() public void SupprimerUtilisateur()
{ {
this.nom = null; this.nom = null;

@ -12,5 +12,6 @@ namespace MangaMap.Stub
{ {
public List<Oeuvre> Oeuvres { get; set; } = new List<Oeuvre>(); public List<Oeuvre> Oeuvres { get; set; } = new List<Oeuvre>();
public List<Utilisateur> Utilisateurs { get; set; } = new List<Utilisateur>(); public List<Utilisateur> Utilisateurs { get; set; } = new List<Utilisateur>();
} }
} }

@ -17,7 +17,7 @@ namespace MangaMap.Stub
List<Oeuvre> l1 = new List<Oeuvre>(); List<Oeuvre> l1 = new List<Oeuvre>();
List<Utilisateur> l2 = new List<Utilisateur>(); List<Utilisateur> l2 = new List<Utilisateur>();
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 u2 = new Utilisateur("test@test.ts", "Pseudo2", "MotDePasse123", "Baptiste", "Jean", 12);
Utilisateur u3 = new Utilisateur("test@test.ts", "Pseudo3", "MotDePasse123", "David", "Marc", 12); Utilisateur u3 = new Utilisateur("test@test.ts", "Pseudo3", "MotDePasse123", "David", "Marc", 12);
List<string> genres = new List<string>(); List<string> genres = new List<string>();
@ -29,6 +29,8 @@ namespace MangaMap.Stub
l1.Add(o1); l1.Add(o2); l1.Add(o1); l1.Add(o2);
l2.Add(u1); l2.Add(u2); l2.Add(u3); l2.Add(u1); l2.Add(u2); l2.Add(u3);
u1.ListeOeuvreEnVisionnage.Add(o1);
return (l1, l2); return (l1, l2);
} }

@ -1,6 +1,7 @@
namespace MangaMap.Views; namespace MangaMap.Views;
using Model; using Model;
using System.ComponentModel; using System.ComponentModel;
using System.Diagnostics;
using System.Xml.Linq; using System.Xml.Linq;
public partial class ficheAnime : ContentPage, INotifyPropertyChanged public partial class ficheAnime : ContentPage, INotifyPropertyChanged
@ -27,6 +28,8 @@ public partial class ficheAnime : ContentPage, INotifyPropertyChanged
this.BindingContext = this; this.BindingContext = this;
} }
public async void AjouterListe(object sender, EventArgs e) public async void AjouterListe(object sender, EventArgs e)
{ {
if (my_manager.UtilisateurActuel == null) if (my_manager.UtilisateurActuel == null)
@ -35,11 +38,46 @@ public partial class ficheAnime : ContentPage, INotifyPropertyChanged
return; return;
} }
my_manager.UtilisateurActuel.ListeOeuvreEnVisionnage.Add(AnimeModel); string selectedOption = await DisplayActionSheet("Ajouter à quelle liste ?", "Annuler", null, "En Visionnage", "Déjà Vu", "Pour Plus Tard", "Favoris");
// Naviguez vers la page de la fiche d'anime en passant l'objet sélectionné
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()); await Navigation.PushAsync(new listPage());
} }
private void SetNote(float note) private void SetNote(float note)
{ {
note = (int)note; // Tronquer à un entier car nous ne gérons actuellement pas les demi-étoiles note = (int)note; // Tronquer à un entier car nous ne gérons actuellement pas les demi-étoiles

@ -2,7 +2,8 @@
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:MangaMap" xmlns:local="clr-namespace:MangaMap"
x:Class="MangaMap.Views.listPage" x:Class="MangaMap.Views.listPage"
BackgroundColor="Black"> BackgroundColor="Black"
x:Name="listPage">
<Grid RowDefinitions="40, *"> <Grid RowDefinitions="40, *">
<local:NewContent1 HeightRequest="40" VerticalOptions="Start" Padding="10, 0"/> <local:NewContent1 HeightRequest="40" VerticalOptions="Start" Padding="10, 0"/>
@ -39,8 +40,7 @@
</Grid> </Grid>
<ScrollView Grid.Row="1" VerticalScrollBarVisibility="Always"> <ScrollView Grid.Row="1" VerticalScrollBarVisibility="Always">
<VerticalStackLayout BindableLayout.ItemsSource="{Binding ListeOeuvreEnVisionnage}" Spacing="10"> <!--<VerticalStackLayout BindableLayout.ItemsSource="{Binding ListeOeuvreEnVisionnage}" Spacing="10">-->
<BindableLayout.ItemTemplate> <BindableLayout.ItemTemplate>
<DataTemplate> <DataTemplate>
<Grid Margin="20,0,20,0" ColumnDefinitions="*,*,300,300"> <Grid Margin="20,0,20,0" ColumnDefinitions="*,*,300,300">
@ -52,7 +52,7 @@
</DataTemplate> </DataTemplate>
</BindableLayout.ItemTemplate> </BindableLayout.ItemTemplate>
</VerticalStackLayout> <!--</VerticalStackLayout>-->
</ScrollView> </ScrollView>
</Grid> </Grid>
</Frame> </Frame>

@ -11,4 +11,7 @@ public partial class listPage : ContentPage
BindingContext = my_manager.UtilisateurActuel; BindingContext = my_manager.UtilisateurActuel;
} }
} }
Loading…
Cancel
Save