Héritage et redefinition des méthodes 'Equals' & 'GetHashCode'. Permettant de corriger le problème de comparaison des jeux.
continuous-integration/drone/push Build is failing Details

pull/63/head
Rémi LAVERGNE 2 years ago
parent abb55e1eef
commit 13194b8fd7

@ -44,5 +44,19 @@ namespace GameAtlas.Models
Genres = genres; Genres = genres;
Image = image; Image = image;
} }
public override bool Equals(object obj)
{
if (obj == null || GetType() != obj.GetType())
return false;
Jeu otherJeu = (Jeu)obj;
return Nom == otherJeu.Nom && Sortie == otherJeu.Sortie;
}
public override int GetHashCode()
{
return HashCode.Combine(Nom, Sortie);
}
} }
} }

@ -10,9 +10,6 @@ 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;
@ -39,32 +36,31 @@ public partial class PageJeu : ContentPage
{ {
if (JeuManager.ConnectedUser != null) if (JeuManager.ConnectedUser != null)
{ {
foreach (Jeu jeu in JeuManager.ConnectedUser.ListeFavoris) bool isFavorite = JeuManager.ConnectedUser.ListeFavoris.Contains(JeuModel);
bool isOwned = JeuManager.ConnectedUser.ListePossedes.Contains(JeuModel);
string favoritePresence = "";
string ownedPresence = "";
if (isFavorite)
{ {
if (jeu.Nom == JeuModel.Nom) favoritePresence = " ✔️";
{
PresenceFavoris = " ✔️";
}
} }
if (isOwned)
foreach (Jeu jeu in JeuManager.ConnectedUser.ListePossedes)
{ {
if (jeu.Nom == JeuModel.Nom) ownedPresence = " ✔️";
{
PresencePossedes = " ✔️";
}
} }
string action = await DisplayActionSheet("Choix de la liste:", "Annuler", null, "Mes Favoris"+PresenceFavoris, "Jeux Possédés"+PresencePossedes); string action = await DisplayActionSheet("Choix de la liste:", "Annuler", null, "Mes Favoris"+favoritePresence, "Jeux Possédés"+ownedPresence);
Debug.WriteLine("Popup Action: " + action); Debug.WriteLine("Popup Action: " + action);
if (action == "Mes Favoris" + PresenceFavoris) if (action == "Mes Favoris" + favoritePresence)
{ {
if (PresenceFavoris == " ✔️") if (isFavorite)
{ {
await DisplayAlert("Jeu Retiré", $"Vous avez retiré {JeuModel.Nom} de votre liste de jeux favoris.", "Ok"); await DisplayAlert("Jeu Retiré", $"Vous avez retiré {JeuModel.Nom} de votre liste de jeux favoris.", "Ok");
JeuManager.ConnectedUser.ListeFavoris.Remove(JeuModel); JeuManager.ConnectedUser.ListeFavoris.Remove(JeuModel);
PresenceFavoris = ""; favoritePresence = "";
} }
else else
{ {
@ -75,13 +71,13 @@ public partial class PageJeu : ContentPage
JeuManager.OnPropertyChanged(nameof(JeuManager.ConnectedUser)); JeuManager.OnPropertyChanged(nameof(JeuManager.ConnectedUser));
JeuManager.SauvegardeDonnees(); JeuManager.SauvegardeDonnees();
} }
else if (action == "Jeux Possédés" + PresencePossedes) else if (action == "Jeux Possédés" + ownedPresence)
{ {
if (PresencePossedes == " ✔️") if (isOwned)
{ {
await DisplayAlert("Jeu Retiré", $"Vous avez retiré {JeuModel.Nom} de votre liste de jeux possédés.", "Ok"); await DisplayAlert("Jeu Retiré", $"Vous avez retiré {JeuModel.Nom} de votre liste de jeux possédés.", "Ok");
JeuManager.ConnectedUser.ListePossedes.Remove(JeuModel); JeuManager.ConnectedUser.ListePossedes.Remove(JeuModel);
PresencePossedes = ""; ownedPresence = "";
} }
else else
{ {
@ -119,7 +115,7 @@ public partial class PageJeu : ContentPage
CharacterSpacing = 0 CharacterSpacing = 0
}; };
string text = "Vous devez être connecté pour effectué cette action."; string text = "Vous devez être connecté pour effectuer cette action.";
string actionButtonText = "OK"; string actionButtonText = "OK";
TimeSpan duration = TimeSpan.FromSeconds(3); TimeSpan duration = TimeSpan.FromSeconds(3);

Loading…
Cancel
Save