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,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"); if (JeuManager.ConnectedUser != null)
{
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); Debug.WriteLine("Popup Action: " + action);
if (JeuManager.ConnectedUser != null) if (action == "Mes Favoris" + PresenceFavoris)
{
if (PresenceFavoris == " ✔️")
{ {
if (action == "Mes Favoris") 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); JeuManager.ConnectedUser.ListeFavoris.Add(JeuModel);
Debug.WriteLine($"Ajout du jeu {JeuModel.Nom} à la Liste Favoris de {JeuManager.ConnectedUser.Pseudo}."); 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)
{
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); JeuManager.ConnectedUser.ListePossedes.Add(JeuModel);
Debug.WriteLine($"Ajout du jeu {JeuModel.Nom} à la Liste Possédés de {JeuManager.ConnectedUser.Pseudo}."); 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>

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