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.Admins.Add(MyAdmin);
//MyManager.UtilisateurActuel = MyManager.charger();
MainPage = new AppShell();

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

@ -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<Oeuvre> ListeOeuvreEnVisionnage { get; set; }
[DataMember]
public List<Oeuvre> ListeOeuvreDejaVu { get; private set; }
[DataMember]
public List<Oeuvre> ListeOeuvrePourPlusTard { get; private set; }
[DataMember]
public List<Oeuvre> 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<Oeuvre>();
ListeOeuvreDejaVu = new List<Oeuvre>();
ListeOeuvrePourPlusTard = new List<Oeuvre>();
ListeOeuvreFavorites = new List<Oeuvre>();
}
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<Oeuvre> ListeOeuvreEnVisionnage { get; set; }
[DataMember]
public List<Oeuvre> ListeOeuvreDejaVu { get; private set; }
[DataMember]
public List<Oeuvre> ListeOeuvrePourPlusTard { get; private set; }
[DataMember]
public List<Oeuvre> 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<Oeuvre>();
ListeOeuvreDejaVu = new List<Oeuvre>();
ListeOeuvrePourPlusTard = 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()
{
this.nom = null;
this.prenom = null;
this.age = 0;
}
}
}

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

@ -17,7 +17,7 @@ namespace MangaMap.Stub
List<Oeuvre> l1 = new List<Oeuvre>();
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 u3 = new Utilisateur("test@test.ts", "Pseudo3", "MotDePasse123", "David", "Marc", 12);
List<string> genres = new List<string>();
@ -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);
}

@ -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

@ -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">
<Grid RowDefinitions="40, *">
<local:NewContent1 HeightRequest="40" VerticalOptions="Start" Padding="10, 0"/>
@ -39,8 +40,7 @@
</Grid>
<ScrollView Grid.Row="1" VerticalScrollBarVisibility="Always">
<VerticalStackLayout BindableLayout.ItemsSource="{Binding ListeOeuvreEnVisionnage}" Spacing="10">
<!--<VerticalStackLayout BindableLayout.ItemsSource="{Binding ListeOeuvreEnVisionnage}" Spacing="10">-->
<BindableLayout.ItemTemplate>
<DataTemplate>
<Grid Margin="20,0,20,0" ColumnDefinitions="*,*,300,300">
@ -52,7 +52,7 @@
</DataTemplate>
</BindableLayout.ItemTemplate>
</VerticalStackLayout>
<!--</VerticalStackLayout>-->
</ScrollView>
</Grid>
</Frame>

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