actualisation auto profil, listeFavoris, ajout d'un jeu dans la liste
continuous-integration/drone/push Build is failing Details

pull/57/head
Yvan CALATAYUD 2 years ago
parent 3e6a5c2f20
commit 0eec91115c

@ -9,7 +9,7 @@ using System.Threading.Tasks;
using System.Xml;
using System.IO;
using System.Xml.Serialization;
using System.Collections.ObjectModel;
namespace GameAtlas.DataContractPersistance
{
@ -19,7 +19,7 @@ namespace GameAtlas.DataContractPersistance
public string FilePath { get; set; } = Path.Combine(AppDomain.CurrentDomain.BaseDirectory); //Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "/data";
public (List<Jeu>, List<Utilisateur>) ChargeDonnees()
public (ObservableCollection<Jeu>, List<Utilisateur>) ChargeDonnees()
{
var serializer = new DataContractSerializer(typeof(DataToPersist));
DataToPersist data = new DataToPersist();
@ -31,7 +31,7 @@ namespace GameAtlas.DataContractPersistance
return (data.jeux, data.utilisateurs);
}
public void SauvegardeDonnees(List<Jeu> jeux, List<Utilisateur> users)
public void SauvegardeDonnees(ObservableCollection<Jeu> jeux, List<Utilisateur> users)
{
var serializer = new DataContractSerializer(typeof(DataToPersist));

@ -1,6 +1,7 @@
using GameAtlas.Models;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@ -9,7 +10,7 @@ namespace GameAtlas.DataContractPersistance
{
public class DataToPersist
{
public List<Jeu> jeux { get; set; } = new List<Jeu>();
public ObservableCollection<Jeu> jeux { get; set; } = new ObservableCollection<Jeu>();
public List<Utilisateur> utilisateurs { get; set; } = new List<Utilisateur>();
}
}

@ -3,7 +3,7 @@
<PropertyGroup>
<IsFirstTimeProjectOpen>False</IsFirstTimeProjectOpen>
<ActiveDebugFramework>net7.0-android</ActiveDebugFramework>
<ActiveDebugProfile>Xiaomi 2201117SY (Android 12.0 - API 31)</ActiveDebugProfile>
<ActiveDebugProfile>Google Pixel 6a (Android 13.0 - API 33)</ActiveDebugProfile>
<SelectedPlatformGroup>PhysicalDevice</SelectedPlatformGroup>
<DefaultDevice>pixel_5_-_api_33_1</DefaultDevice>
</PropertyGroup>

@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@ -8,8 +9,8 @@ namespace GameAtlas.Models
{
public interface IPersistanceManager
{
(List<Jeu>,List<Utilisateur>) ChargeDonnees();
(ObservableCollection<Jeu>,List<Utilisateur>) ChargeDonnees();
void SauvegardeDonnees(List<Jeu> jeux, List<Utilisateur> utilisateurs);
void SauvegardeDonnees(ObservableCollection<Jeu> jeux, List<Utilisateur> utilisateurs);
}
}

@ -11,7 +11,7 @@ namespace GameAtlas.Models
{
public class Manager : INotifyPropertyChanged
{
public List<Jeu> ListJeux { get; private set; }
public ObservableCollection<Jeu> ListJeux { get; private set; }
public List<Admin> Admins { get; private set; }
public List<Utilisateur> Utilisateurs { get; private set; }
@ -30,19 +30,19 @@ namespace GameAtlas.Models
public event PropertyChangedEventHandler? PropertyChanged;
void OnPropertyChanged([CallerMemberName] string propertyName = null)
public void OnPropertyChanged([CallerMemberName] string propertyName = null)
=> PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
public Manager(IPersistanceManager persistance)
{
Utilisateurs = new List<Utilisateur>();
ListJeux = new List<Jeu>();
ListJeux = new ObservableCollection<Jeu>();
Persistance = persistance;
ConnectedUser = null;
}
public Manager() {
ListJeux = new List<Jeu>();
ListJeux = new ObservableCollection<Jeu>();
Admins = new List<Admin>();
Utilisateurs = new List<Utilisateur>();
ConnectedUser = null;

@ -1,6 +1,7 @@
using GameAtlas.Views;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
@ -20,9 +21,9 @@ namespace GameAtlas.Models
[DataMember]
public string DateCreation { get; private set; }
[DataMember]
public List<Jeu> ListePossedes { get; private set; }
public ObservableCollection<Jeu> ListePossedes { get; private set; }
[DataMember]
public List<Jeu> ListeFavoris { get; private set; }
public ObservableCollection<Jeu> ListeFavoris { get; private set; }
public Utilisateur(string mail, string pseudo, string mdp)
{
@ -30,8 +31,8 @@ namespace GameAtlas.Models
Pseudo = pseudo;
Mdp = mdp;
DateCreation = "Compte créer le "+DateTime.Today.ToString("d");
ListePossedes = new List<Jeu>();
ListeFavoris = new List<Jeu>();
ListePossedes = new ObservableCollection<Jeu>();
ListeFavoris = new ObservableCollection<Jeu>();
}

@ -1,6 +1,7 @@
using GameAtlas.Models;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@ -9,10 +10,10 @@ namespace GameAtlas.Stub
{
public class Stub : IPersistanceManager
{
public (List<Jeu>,List<Utilisateur>) ChargeDonnees()
public (ObservableCollection<Jeu>,List<Utilisateur>) ChargeDonnees()
{
List<Utilisateur> ListUsers = new List<Utilisateur>();
List<Jeu> ListJeu = new List<Jeu>();
ObservableCollection<Jeu> ListJeu = new ObservableCollection<Jeu>();
Utilisateur userTest = new Utilisateur("test@gmail.com", "test", "Test1234");
ListUsers.Add(userTest);
Jeu TheLastOfUs = new Jeu("The last of Us Part 1","5 Fevrier 2023","Ps5 XOne Pc","dev","ed", 5, 487,"Aventure", "cover_lastofus1.png");
@ -24,7 +25,7 @@ namespace GameAtlas.Stub
return (ListJeu,ListUsers);
}
public void SauvegardeDonnees(List<Jeu> jeux, List<Utilisateur> utilisateurs)
public void SauvegardeDonnees(ObservableCollection<Jeu> jeux, List<Utilisateur> utilisateurs)
{
throw new NotImplementedException();
}

@ -50,6 +50,7 @@ public partial class PageAdmin : ContentPage
Jeu adminJeu = new Jeu(nom, sortie, plateformes, developpeur, editeur, noteInt, nbTelechargementInt, genre, image);
AdminManager.AddJeux(adminJeu);
AdminManager.SauvegardeDonnees();
AdminManager.OnPropertyChanged(nameof(AdminManager.ListJeux));
Debug.WriteLine($"Le jeu \"{adminJeu.Nom}\" a été ajouté.");
}

@ -24,7 +24,7 @@ public partial class PageJeu : ContentPage
InitializeComponent();
this.BindingContext = this;
BindingContext = this;
}
@ -40,11 +40,15 @@ public partial class PageJeu : ContentPage
{
JeuManager.ConnectedUser.ListeFavoris.Add(JeuModel);
Debug.WriteLine($"Ajout du jeu {JeuModel.Nom} à la Liste Favoris de {JeuManager.ConnectedUser.Pseudo}.");
JeuManager.OnPropertyChanged(nameof(JeuManager.ConnectedUser));
JeuManager.SauvegardeDonnees();
}
else if (action == "Jeux Possédés")
{
JeuManager.ConnectedUser.ListePossedes.Add(JeuModel);
Debug.WriteLine($"Ajout du jeu {JeuModel.Nom} à la Liste Possédés de {JeuManager.ConnectedUser.Pseudo}.");
JeuManager.OnPropertyChanged(nameof(JeuManager.ConnectedUser));
JeuManager.SauvegardeDonnees();
}
}
else

@ -88,7 +88,7 @@
<Shadow Brush="Black" Offset="0,4" Radius="4" Opacity="0.4" />
</Border.Shadow>
<Frame HasShadow="False" HeightRequest="97.5" CornerRadius="5" IsClippedToBounds="True">
<Image HeightRequest="97.5" Source="{Binding .}" Aspect="AspectFill"/>
<Image HeightRequest="97.5" Source="{Binding Image}" Aspect="AspectFill"/>
<Frame.GestureRecognizers>
<TapGestureRecognizer Tapped="OnGame_Tapped"/>

@ -1,17 +1,17 @@
using GameAtlas.Models;
namespace GameAtlas.Views;
public partial class PageProfil : ContentPage
{
public Manager ProfilManager => (App.Current as App).MyManager;
public PageProfil()
{
InitializeComponent();
BindingContext = ProfilManager;
SwitchPage();
}
using GameAtlas.Models;
namespace GameAtlas.Views;
public partial class PageProfil : ContentPage
{
public Manager ProfilManager => (App.Current as App).MyManager;
public PageProfil()
{
InitializeComponent();
BindingContext = ProfilManager;
SwitchPage();
}
async void SwitchPage()
{
if (ProfilManager.ConnectedUser == null)
@ -22,15 +22,15 @@ public partial class PageProfil : ContentPage
{
await Shell.Current.GoToAsync("//page/PageProfil");
}
}
async void OnGame_Tapped(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)
{
await Shell.Current.GoToAsync(nameof(PageJeu));
}
async void OnAdmin_Tapped(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)
{
await Shell.Current.GoToAsync(nameof(PageAdmin));
}
}
async void OnGame_Tapped(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)
{
await Shell.Current.GoToAsync(nameof(PageJeu));
}
async void OnAdmin_Tapped(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)
{
await Shell.Current.GoToAsync(nameof(PageAdmin));
}
}
Loading…
Cancel
Save