Ajout d'une sécurité et du retrait d'un jeu si déjà ajouté aux Favoris ou Possédés
continuous-integration/drone/push Build is failing Details

pull/58/head
Rémi LAVERGNE 2 years ago
parent cf90ccf3a0
commit ba22862846

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

@ -1,4 +1,4 @@
using GameAtlas.Models; using GameAtlas.Models;
using System.Diagnostics; using System.Diagnostics;
namespace GameAtlas.Views; namespace GameAtlas.Views;
@ -7,6 +7,9 @@ public partial class PageJeu : ContentPage
{ {
public Jeu JeuModel { get; set; } public Jeu JeuModel { get; set; }
string PresenceFavoris = "";
string PresencePossedes = "";
//public Manager JeuManager { get; set; } = new Manager(); //public Manager JeuManager { get; set; } = new Manager();
public Manager JeuManager => (App.Current as App).MyManager; 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) 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 (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); if (PresenceFavoris == " ✔️")
Debug.WriteLine($"Ajout du jeu {JeuModel.Nom} à la Liste Favoris de {JeuManager.ConnectedUser.Pseudo}."); {
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.OnPropertyChanged(nameof(JeuManager.ConnectedUser));
JeuManager.SauvegardeDonnees(); JeuManager.SauvegardeDonnees();
} }
else if (action == "Jeux Possédés") else if (action == "Jeux Possédés" + PresencePossedes)
{ {
JeuManager.ConnectedUser.ListePossedes.Add(JeuModel); if (PresencePossedes == " ✔️")
Debug.WriteLine($"Ajout du jeu {JeuModel.Nom} à la Liste Possédés de {JeuManager.ConnectedUser.Pseudo}."); {
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.OnPropertyChanged(nameof(JeuManager.ConnectedUser));
JeuManager.SauvegardeDonnees(); JeuManager.SauvegardeDonnees();
} }
@ -55,7 +94,6 @@ public partial class PageJeu : ContentPage
{ {
await DisplayAlert("Erreur", "Vous devez vous connecter pour faire cela !", "Ok"); await DisplayAlert("Erreur", "Vous devez vous connecter pour faire cela !", "Ok");
} }
return;
} }
async void Back_Tapped(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e) async void Back_Tapped(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)

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

@ -37,7 +37,7 @@
</VerticalStackLayout> </VerticalStackLayout>
<Grid Grid.Row="0" Grid.Column="2" RowDefinitions="50" ColumnDefinitions="50" HorizontalOptions="Start"> <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"/> <Image Source="shieldperson" HeightRequest="40"/>
<Frame.GestureRecognizers> <Frame.GestureRecognizers>
@ -88,11 +88,7 @@
<Shadow Brush="Black" Offset="0,4" Radius="4" Opacity="0.4" /> <Shadow Brush="Black" Offset="0,4" Radius="4" Opacity="0.4" />
</Border.Shadow> </Border.Shadow>
<Frame HasShadow="False" HeightRequest="97.5" CornerRadius="5" IsClippedToBounds="True"> <Frame HasShadow="False" HeightRequest="97.5" CornerRadius="5" IsClippedToBounds="True">
<Image HeightRequest="97.5" Source="{Binding Image}" Aspect="AspectFill"/> <ImageButton HeightRequest="97.5" Source="{Binding Image}" Aspect="AspectFill" Clicked="OnGame_Tapped"/>
<Frame.GestureRecognizers>
<TapGestureRecognizer Tapped="OnGame_Tapped"/>
</Frame.GestureRecognizers>
</Frame> </Frame>
</Border> </Border>
</DataTemplate> </DataTemplate>

@ -10,7 +10,7 @@ public partial class PageProfil : ContentPage
InitializeComponent(); InitializeComponent();
BindingContext = ProfilManager; BindingContext = ProfilManager;
SwitchPage(); SwitchPage();
} }
async void 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) async void OnAdmin_Tapped(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)

Loading…
Cancel
Save