Ajout d'une sécurité et du retrait d'un jeu si déjà ajouté aux Favoris ou Possédés #58

Merged
remi.lavergne merged 1 commits from remi into master 2 years ago

@ -1,46 +1,46 @@
using GameAtlas.Views;
using System;
using System.Collections.Generic;
using GameAtlas.Views;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace GameAtlas.Models
{
[DataContract]
public class Utilisateur
{
[DataMember]
public string Mail { get; private set; }
[DataMember]
public string Pseudo { get; private set; }
[DataMember]
public string Mdp { get; private set; }
[DataMember]
public string DateCreation { get; private set; }
[DataMember]
public ObservableCollection<Jeu> ListePossedes { get; private set; }
[DataMember]
public ObservableCollection<Jeu> ListeFavoris { get; private set; }
public Utilisateur(string mail, string pseudo, string mdp)
{
Mail = mail;
Pseudo = pseudo;
Mdp = mdp;
DateCreation = "Compte créer le "+DateTime.Today.ToString("d");
ListePossedes = new ObservableCollection<Jeu>();
ListeFavoris = new ObservableCollection<Jeu>();
}
public int Connexion(string pseudo, string mdp) { return 0; }
public int Inscription(string mail, string pseudo, string mdp) { return 0; }
public void AjouterCom(Jeu jeu, string com) { }
public void SupprimerCom(Jeu jeu, string com) { }
public void AjouterEvaluation(Jeu jeu, int nbEtoiles) { }
}
}
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace GameAtlas.Models
{
[DataContract]
public class Utilisateur
{
[DataMember]
public string Mail { get; private set; }
[DataMember]
public string Pseudo { get; private set; }
[DataMember]
public string Mdp { get; private set; }
[DataMember]
public string DateCreation { get; private set; }
[DataMember]
public ObservableCollection<Jeu> ListePossedes { get; private set; }
[DataMember]
public ObservableCollection<Jeu> ListeFavoris { get; private set; }
public Utilisateur(string mail, string pseudo, string mdp)
{
Mail = mail;
Pseudo = pseudo;
Mdp = mdp;
DateCreation = "Compte créer le "+DateTime.Today.ToString("d");
ListePossedes = new ObservableCollection<Jeu>();
ListeFavoris = new ObservableCollection<Jeu>();
}
public int Connexion(string pseudo, string mdp) { return 0; }
public int Inscription(string mail, string pseudo, string mdp) { return 0; }
public void AjouterCom(Jeu jeu, string com) { }
public void SupprimerCom(Jeu jeu, string com) { }
public void AjouterEvaluation(Jeu jeu, int nbEtoiles) { }
}
}

@ -1,4 +1,4 @@
using GameAtlas.Models;
using GameAtlas.Models;
using System.Diagnostics;
namespace GameAtlas.Views;
@ -7,6 +7,9 @@ public partial class PageJeu : ContentPage
{
public Jeu JeuModel { get; set; }
string PresenceFavoris = "";
string PresencePossedes = "";
//public Manager JeuManager { get; set; } = new Manager();
public Manager JeuManager => (App.Current as App).MyManager;
@ -31,22 +34,58 @@ public partial class PageJeu : ContentPage
async void OnAddTapped(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)
{
string action = await DisplayActionSheet("Choix de la liste:", "Annuler", null, "Mes Favoris", "Jeux Possédés");
Debug.WriteLine("Popup Action: " + action);
if (JeuManager.ConnectedUser != null)
{
if (action == "Mes Favoris")
foreach (Jeu jeu in JeuManager.ConnectedUser.ListeFavoris)
{
if (jeu.Nom == JeuModel.Nom)
{
PresenceFavoris = " ✔️";
}
}
foreach (Jeu jeu in JeuManager.ConnectedUser.ListePossedes)
{
if (jeu.Nom == JeuModel.Nom)
{
PresencePossedes = " ✔️";
}
}
string action = await DisplayActionSheet("Choix de la liste:", "Annuler", null, "Mes Favoris"+PresenceFavoris, "Jeux Possédés"+PresencePossedes);
Debug.WriteLine("Popup Action: " + action);
if (action == "Mes Favoris" + PresenceFavoris)
{
JeuManager.ConnectedUser.ListeFavoris.Add(JeuModel);
Debug.WriteLine($"Ajout du jeu {JeuModel.Nom} à la Liste Favoris de {JeuManager.ConnectedUser.Pseudo}.");
if (PresenceFavoris == " ✔️")
{
await DisplayAlert("Jeu Retiré", $"Vous avez retiré {JeuModel.Nom} de votre liste de jeux favoris.", "Ok");
JeuManager.ConnectedUser.ListeFavoris.Remove(JeuModel);
PresenceFavoris = "";
}
else
{
JeuManager.ConnectedUser.ListeFavoris.Add(JeuModel);
Debug.WriteLine($"Ajout du jeu {JeuModel.Nom} à la Liste Favoris de {JeuManager.ConnectedUser.Pseudo}.");
await DisplayAlert("Jeu Ajouté", $"{JeuModel.Nom} a été ajoutée dans votre liste de jeux favoris.", "Ok");
}
JeuManager.OnPropertyChanged(nameof(JeuManager.ConnectedUser));
JeuManager.SauvegardeDonnees();
}
else if (action == "Jeux Possédés")
else if (action == "Jeux Possédés" + PresencePossedes)
{
JeuManager.ConnectedUser.ListePossedes.Add(JeuModel);
Debug.WriteLine($"Ajout du jeu {JeuModel.Nom} à la Liste Possédés de {JeuManager.ConnectedUser.Pseudo}.");
if (PresencePossedes == " ✔️")
{
await DisplayAlert("Jeu Retiré", $"Vous avez retiré {JeuModel.Nom} de votre liste de jeux possédés.", "Ok");
JeuManager.ConnectedUser.ListePossedes.Remove(JeuModel);
PresencePossedes = "";
}
else
{
JeuManager.ConnectedUser.ListePossedes.Add(JeuModel);
Debug.WriteLine($"Ajout du jeu {JeuModel.Nom} à la Liste Possédés de {JeuManager.ConnectedUser.Pseudo}.");
await DisplayAlert("Jeu Ajouté", $"{JeuModel.Nom} a été ajoutée dans votre liste de jeux possédés.", "Ok");
}
JeuManager.OnPropertyChanged(nameof(JeuManager.ConnectedUser));
JeuManager.SauvegardeDonnees();
}
@ -55,7 +94,6 @@ public partial class PageJeu : ContentPage
{
await DisplayAlert("Erreur", "Vous devez vous connecter pour faire cela !", "Ok");
}
return;
}
async void Back_Tapped(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)

@ -45,8 +45,6 @@
</Border.Shadow>
<Frame HasShadow="False" HeightRequest="97.5" CornerRadius="5" IsClippedToBounds="True">
<ImageButton HeightRequest="97.5" Source="{Binding Image}" Aspect="AspectFill" Clicked="OnGame_Tapped"/>
</Frame>
</Border>
</DataTemplate>

@ -37,7 +37,7 @@
</VerticalStackLayout>
<Grid Grid.Row="0" Grid.Column="2" RowDefinitions="50" ColumnDefinitions="50" HorizontalOptions="Start">
<Frame WidthRequest="50" HeightRequest="50" CornerRadius="25" VerticalOptions="Start" IsClippedToBounds="True" BackgroundColor="{StaticResource Tertiary}">
<Frame IsVisible="{Binding ConnectedUser.isAdmin}" WidthRequest="50" HeightRequest="50" CornerRadius="25" VerticalOptions="Start" IsClippedToBounds="True" BackgroundColor="{StaticResource Tertiary}">
<Image Source="shieldperson" HeightRequest="40"/>
<Frame.GestureRecognizers>
@ -88,11 +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 Image}" Aspect="AspectFill"/>
<Frame.GestureRecognizers>
<TapGestureRecognizer Tapped="OnGame_Tapped"/>
</Frame.GestureRecognizers>
<ImageButton HeightRequest="97.5" Source="{Binding Image}" Aspect="AspectFill" Clicked="OnGame_Tapped"/>
</Frame>
</Border>
</DataTemplate>

@ -10,7 +10,7 @@ public partial class PageProfil : ContentPage
InitializeComponent();
BindingContext = ProfilManager;
SwitchPage();
}
}
async void SwitchPage()
{
@ -24,9 +24,15 @@ public partial class PageProfil : ContentPage
}
}
async void OnGame_Tapped(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)
async void OnGame_Tapped(System.Object sender, EventArgs e)
{
await Shell.Current.GoToAsync(nameof(PageJeu));
var selectedjeu = (sender as ImageButton)?.BindingContext as Jeu;
if (selectedjeu != null)
{
//await Shell.Current.GoToAsync(nameof(PageJeu(selectedjeu)); ---- Ne marche pas ----
await Navigation.PushAsync(new PageJeu(selectedjeu));
}
}
async void OnAdmin_Tapped(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)

Loading…
Cancel
Save