diff --git a/Sources/GameAtlas/GameAtlas/App.xaml.cs b/Sources/GameAtlas/GameAtlas/App.xaml.cs
index 482eea9..a14480e 100644
--- a/Sources/GameAtlas/GameAtlas/App.xaml.cs
+++ b/Sources/GameAtlas/GameAtlas/App.xaml.cs
@@ -5,14 +5,29 @@ using GameAtlas.Views;
namespace GameAtlas;
+///
+/// Classe partielle pour l'application principale.
+///
public partial class App : Application
{
-
+ ///
+ /// Nom du fichier de données.
+ ///
public string FileName { get; set; } = "data.json"; // data.xml
+ ///
+ /// Chemin du fichier de données.
+ ///
public string FilePath { get; set; } = Path.Combine(AppDomain.CurrentDomain.BaseDirectory);
+ ///
+ /// Gestionnaire principal de l'application.
+ ///
public Manager MyManager { get; private set; } = new Manager(new Stub.Stub());//new Manager(new DataContractPersistance.DataContractPers());
+
+ ///
+ /// Constructeur de l'application.
+ ///
public App()
{
InitializeComponent();
diff --git a/Sources/GameAtlas/GameAtlas/AppShell.xaml.cs b/Sources/GameAtlas/GameAtlas/AppShell.xaml.cs
index ef60de8..59f2398 100644
--- a/Sources/GameAtlas/GameAtlas/AppShell.xaml.cs
+++ b/Sources/GameAtlas/GameAtlas/AppShell.xaml.cs
@@ -2,9 +2,15 @@
namespace GameAtlas;
+///
+/// Classe partielle pour la base de l'application.
+///
public partial class AppShell : Shell
{
- public AppShell()
+ ///
+ /// Constructeur de la base de l'application.
+ ///
+ public AppShell()
{
InitializeComponent();
diff --git a/Sources/GameAtlas/GameAtlas/MauiProgram.cs b/Sources/GameAtlas/GameAtlas/MauiProgram.cs
index 89e00e6..64b4752 100644
--- a/Sources/GameAtlas/GameAtlas/MauiProgram.cs
+++ b/Sources/GameAtlas/GameAtlas/MauiProgram.cs
@@ -3,9 +3,16 @@ using Microsoft.Extensions.Logging;
namespace GameAtlas;
+///
+/// Classe principale du programme pour l'application Maui.
+///
public static class MauiProgram
{
- public static MauiApp CreateMauiApp()
+ ///
+ /// Crée et configure l'application MAUI.
+ ///
+ /// L'application MAUI configurée.
+ public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
diff --git a/Sources/GameAtlas/GameAtlas/Views/PageAccueil.xaml.cs b/Sources/GameAtlas/GameAtlas/Views/PageAccueil.xaml.cs
index da272ec..d095d00 100644
--- a/Sources/GameAtlas/GameAtlas/Views/PageAccueil.xaml.cs
+++ b/Sources/GameAtlas/GameAtlas/Views/PageAccueil.xaml.cs
@@ -3,7 +3,9 @@ using System.Collections.ObjectModel;
namespace GameAtlas.Views;
-
+///
+/// Code-Behind pour la page d'accueil.
+///
public partial class PageAcceuil : ContentPage
{
diff --git a/Sources/GameAtlas/GameAtlas/Views/PageAdmin.xaml.cs b/Sources/GameAtlas/GameAtlas/Views/PageAdmin.xaml.cs
index f658b16..70d7cc8 100644
--- a/Sources/GameAtlas/GameAtlas/Views/PageAdmin.xaml.cs
+++ b/Sources/GameAtlas/GameAtlas/Views/PageAdmin.xaml.cs
@@ -10,29 +10,41 @@ using System.Diagnostics;
namespace GameAtlas.Views;
+///
+/// Code-Behind pour la page d'admin.
+///
public partial class PageAdmin : ContentPage
{
+ ///
+ /// Gestionnaire d'administration.
+ ///
public Manager AdminManager => (App.Current as App).MyManager;
+
+ ///
+ /// Constructeur de la page d'administration.
+ ///
public PageAdmin()
{
InitializeComponent();
}
- /**
- * \brief Flèche de retour en arrière
- * \return void
- */
+ ///
+ /// Méthode appelée lorsqu'on appuie sur la flèche de retour en arrière.
+ ///
+ /// L'objet qui a déclenché l'événement.
+ /// Les arguments de l'événement.
async void Back_Tapped(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)
{
await Navigation.PopAsync();
}
- /**
- * \brief Bouton d'ajout de jeu
- * Affiche une succession de pop-up, pour remplir les champs un par un.
- * Traitement et vérification des champs.
- * \return void
- */
+ ///
+ /// Méthode appelée lorsqu'on appuie sur le bouton d'ajout de jeu.
+ /// Affiche une succession de pop-up pour remplir les champs un par un.
+ /// Traite et vérifie les champs pour ajouter un jeu.
+ ///
+ /// L'objet qui a déclenché l'événement.
+ /// Les arguments de l'événement.
private async void OnButtonClicked(object sender, EventArgs e)
{
string nom = string.Empty;
@@ -145,6 +157,13 @@ public partial class PageAdmin : ContentPage
}
}
+ ///
+ /// Méthode appelée lorsqu'on appuie sur le bouton de suppression d'un jeu.
+ /// Affiche une liste de jeux à supprimer.
+ /// Supprime le jeu sélectionné.
+ ///
+ /// L'objet qui a déclenché l'événement.
+ /// Les arguments de l'événement.
private async void OnDeleteClicked(object sender, EventArgs e)
{
var gameNames = GetGameNames().ToArray();
@@ -163,11 +182,19 @@ public partial class PageAdmin : ContentPage
}
}
+ ///
+ /// Retourne une liste de noms de jeux.
+ ///
+ /// La liste des noms de jeux.
private List GetGameNames()
{
return AdminManager.ListJeux.Select(jeu => jeu.Nom).ToList();
}
+ ///
+ /// Retourne une liste de noms de jeux.
+ ///
+ /// La liste des noms de jeux.
private Jeu GetGameByName(string name)
{
return AdminManager.ListJeux.FirstOrDefault(jeu => jeu.Nom == name);
diff --git a/Sources/GameAtlas/GameAtlas/Views/PageConnexion.xaml.cs b/Sources/GameAtlas/GameAtlas/Views/PageConnexion.xaml.cs
index 30aca9d..fabb959 100644
--- a/Sources/GameAtlas/GameAtlas/Views/PageConnexion.xaml.cs
+++ b/Sources/GameAtlas/GameAtlas/Views/PageConnexion.xaml.cs
@@ -10,21 +10,33 @@ using Models;
using System.Diagnostics;
using System.Text.RegularExpressions;
+///
+/// Code-Behind pour la page de connexion.
+///
public partial class PageConnexion : ContentPage
{
+
private bool connexionWorked;
+ ///
+ /// Gestionnaire de connexion.
+ ///
public Manager ConnexionManager => (App.Current as App).MyManager;
+
+ ///
+ /// Constructeur de la page de connexion.
+ ///
public PageConnexion()
{
InitializeComponent();
}
- /**
- * \brief Bouton "Connexion"
- * Réaction au clic sur le bouton, vérification des champs non vide.
- * \return void
- */
+ ///
+ /// Méthode appelée lorsqu'on appuie sur le bouton "Connexion".
+ /// Vérifie les champs non vides et effectue la vérification de la connexion.
+ ///
+ /// L'objet qui a déclenché l'événement.
+ /// Les arguments de l'événement.
private async void OnSignInClicked(object sender, EventArgs e)
{
@@ -41,28 +53,28 @@ public partial class PageConnexion : ContentPage
connexionWorked = Verification(username, password);
if (connexionWorked)
{
- //await Navigation.PushAsync(new PageAcceuil());
await Navigation.PopAsync();
- //await Shell.Current.GoToAsync("//page/PageAccueil");
}
}
- /**
- * \brief Texte "S'inscrire"
- * Réaction au clic sur le texte, envoie sur le page d'Inscription.
- * \return void
- */
+ ///
+ /// Méthode appelée lorsqu'on appuie sur le texte "S'inscrire".
+ /// Affiche la page d'inscription.
+ ///
+ /// L'objet qui a déclenché l'événement.
+ /// Les arguments de l'événement.
private async void OnInscrire_Tapped(object sender, EventArgs e)
{
await Navigation.PushModalAsync(new PageInscription());
}
- /**
- * \brief Texte "Mot de Passe oublié"
- * Réaction au clic sur le texte, affichage de pop-ups.
- * \return void
- */
+ ///
+ /// Méthode appelée lorsqu'on appuie sur le texte "Mot de Passe oublié".
+ /// Affiche des pop-ups avec des messages.
+ ///
+ /// L'objet qui a déclenché l'événement.
+ /// Les arguments de l'événement.
private async void OnMotDePasseOublie_Tapped(object sender, EventArgs e)
{
await DisplayAlert("Oh non !", "Le mot de passe va te revenir à force", "Concentration");
@@ -79,14 +91,14 @@ public partial class PageConnexion : ContentPage
}
}
- /**
- * \brief Vérification et Chargement
- * Vérification de la présence de l'utilisateur dans la Liste d'Utilisateurs.
- * Si c'est le cas, comparaison du mot de passe fournis par celui de l'utilisateur.
- * Si tout est bon, chargement de l'utilisateur dans ConnectedUser.
- * Dans le cas contraire, on renvoie un message d'erreur et termine la vérification.
- * \return bool true si la connexion a fonctionnée, false sinon.
- */
+ ///
+ /// Vérifie la présence de l'utilisateur dans la liste des utilisateurs et effectue la vérification du mot de passe.
+ /// Charge l'utilisateur connecté si la vérification est réussie.
+ /// Affiche un message d'erreur sinon.
+ ///
+ /// Le nom d'utilisateur saisi.
+ /// Le mot de passe saisi.
+ /// True si la connexion a réussi, false sinon.
public bool Verification(string username, string password)
{
foreach (Utilisateur user in ConnexionManager.Utilisateurs.Concat(ConnexionManager.Admins))
diff --git a/Sources/GameAtlas/GameAtlas/Views/PageInscription.xaml.cs b/Sources/GameAtlas/GameAtlas/Views/PageInscription.xaml.cs
index c351322..13c388a 100644
--- a/Sources/GameAtlas/GameAtlas/Views/PageInscription.xaml.cs
+++ b/Sources/GameAtlas/GameAtlas/Views/PageInscription.xaml.cs
@@ -8,17 +8,32 @@ using CommunityToolkit.Maui.Core;
using CommunityToolkit.Maui.Alerts;
using Font = Microsoft.Maui.Font;
+///
+/// Code-Behind pour la page d'inscription.
+///
public partial class PageInscription : ContentPage
{
+ ///
+ /// Chemin d'accès à l'image par défaut pour le profil utilisateur.
+ ///
string ImagePath { get; set; } = "default_user.png";
+
+ ///
+ /// Gestionnaire d'inscription.
+ ///
public Manager InscriptionManager => (App.Current as App).MyManager;
+ ///
+ /// Constructeur de la page d'inscription.
+ ///
public PageInscription()
{
InitializeComponent();
}
-
+ ///
+ /// Méthode appelée lorsqu'on appuie sur le bouton "S'inscrire".
+ ///
private async void OnSignUpClicked(object sender, EventArgs e)
{
@@ -53,42 +68,48 @@ public partial class PageInscription : ContentPage
await DisplayAlert("Compte créer avec succès !","Vous pouvez maintenant vous connecter.", cancel: "Ok");
await Shell.Current.GoToAsync("//page/PageAccueil");
+ }
+
+ ///
+ /// Vérifie si le mot de passe est assez fort.
+ ///
+ /// Le mot de passe à vérifier.
+ /// True si le mot de passe est assez fort, False sinon.
+ bool IsPasswordStrong(string password)
+ {
+ // Vérifier si le mot de passe est assez long
+ if (password.Length < 8)
+ {
+ return false;
+ }
+ // Vérifier si le mot de passe contient au moins une majuscule, une minuscule et un chiffre
+ bool hasUppercase = false;
+ bool hasLowercase = false;
+ bool hasDigit = false;
- bool IsPasswordStrong(string password)
+ foreach (char c in password)
{
- // Vérifier si le mot de passe est assez long
- if (password.Length < 8)
+ if (char.IsUpper(c))
{
- return false;
+ hasUppercase = true;
}
-
- // Vérifier si le mot de passe contient au moins une majuscule, une minuscule et un chiffre
- bool hasUppercase = false;
- bool hasLowercase = false;
- bool hasDigit = false;
-
- foreach (char c in password)
+ else if (char.IsLower(c))
{
- if (char.IsUpper(c))
- {
- hasUppercase = true;
- }
- else if (char.IsLower(c))
- {
- hasLowercase = true;
- }
- else if (char.IsDigit(c))
- {
- hasDigit = true;
- }
+ hasLowercase = true;
+ }
+ else if (char.IsDigit(c))
+ {
+ hasDigit = true;
}
-
- return hasUppercase && hasLowercase && hasDigit;
}
+ return hasUppercase && hasLowercase && hasDigit;
}
+ ///
+ /// Méthode appelée lorsqu'on appuie sur le bouton "Sélectionner une photo".
+ ///
private async void OnSelectPhotoClicked(object sender, EventArgs e)
{
var photo = await MediaPicker.PickPhotoAsync();
diff --git a/Sources/GameAtlas/GameAtlas/Views/PageJeu.xaml.cs b/Sources/GameAtlas/GameAtlas/Views/PageJeu.xaml.cs
index b8d7f21..ab972e0 100644
--- a/Sources/GameAtlas/GameAtlas/Views/PageJeu.xaml.cs
+++ b/Sources/GameAtlas/GameAtlas/Views/PageJeu.xaml.cs
@@ -6,13 +6,24 @@ using Font = Microsoft.Maui.Font;
namespace GameAtlas.Views;
+///
+/// Code-Behind pour la page de jeu.
+///
public partial class PageJeu : ContentPage
{
+ ///
+ /// Modèle de jeu.
+ ///
public Jeu JeuModel { get; set; }
- //public Manager JeuManager { get; set; } = new Manager();
+ ///
+ /// Gestionnaire de jeu.
+ ///
public Manager JeuManager => (App.Current as App).MyManager;
+ ///
+ /// Constructeur de la page de jeu.
+ ///
public PageJeu()
{
InitializeComponent();
@@ -20,6 +31,10 @@ public partial class PageJeu : ContentPage
BindingContext = JeuManager;
}
+ ///
+ /// Constructeur de la page de jeu avec un jeu spécifique.
+ ///
+ /// Le jeu qui doit être affiché.
public PageJeu(Jeu jeu)
{
@@ -30,10 +45,11 @@ public partial class PageJeu : ContentPage
InitializeComponent();
BindingContext = this;
-
-
}
+ ///
+ /// Méthode appelée lorsqu'on appuie sur le bouton "Ajouter".
+ ///
async void OnAddTapped(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)
{
if (JeuManager.ConnectedUser != null)
@@ -98,6 +114,9 @@ public partial class PageJeu : ContentPage
}
}
+ ///
+ /// Méthode appelée lorsqu'on appuie sur le bouton "Ajouter un commentaire".
+ ///
async void OnAddCommentClicked(object sender, EventArgs args)
{
if (JeuManager.ConnectedUser != null)
@@ -124,11 +143,17 @@ public partial class PageJeu : ContentPage
}
}
+ ///
+ /// Méthode appelée lorsqu'on appuie sur l'icône de retour.
+ ///
async void Back_Tapped(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)
{
await Navigation.PopAsync();
}
+ ///
+ /// Affiche une alerte indiquant qu'il faut être connecté pour effectuer une action. (Snackbar MAUI Toolkit)
+ ///
private async void Alert()
{
CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
diff --git a/Sources/GameAtlas/GameAtlas/Views/PageParcourir.xaml.cs b/Sources/GameAtlas/GameAtlas/Views/PageParcourir.xaml.cs
index 4472ca9..4b56379 100644
--- a/Sources/GameAtlas/GameAtlas/Views/PageParcourir.xaml.cs
+++ b/Sources/GameAtlas/GameAtlas/Views/PageParcourir.xaml.cs
@@ -1,43 +1,60 @@
-namespace GameAtlas.Views;
-
-using Models;
-using System.Collections.ObjectModel;
-
-public partial class PageParcourir : ContentPage
+namespace GameAtlas.Views
{
+ using Models;
+ using System.Collections.ObjectModel;
- public Manager ParcourirManager => (App.Current as App).MyManager;
- public PageParcourir()
- {
- InitializeComponent();
- BindingContext = ParcourirManager;
- }
-
- async void OnGame_Tapped(System.Object sender, EventArgs e)
+ ///
+ /// Code-Behind pour la page parcourir.
+ ///
+ public partial class PageParcourir : ContentPage
{
- var selectedjeu = (sender as ImageButton)?.BindingContext as Jeu;
- if (selectedjeu != null)
+ ///
+ /// Gestionnaire de parcours.
+ ///
+ public Manager ParcourirManager => (App.Current as App).MyManager;
+
+ ///
+ /// Constructeur de la page de parcours.
+ ///
+ public PageParcourir()
{
-
- await Navigation.PushAsync(new PageJeu(selectedjeu));
+ InitializeComponent();
+ BindingContext = ParcourirManager;
}
-
- }
- async void Back_Tapped(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)
- {
- await Navigation.PopAsync();
- }
+ ///
+ /// Méthode appelée lorsqu'un jeu est sélectionné.
+ ///
+ async void OnGame_Tapped(System.Object sender, EventArgs e)
+ {
+ var selectedjeu = (sender as ImageButton)?.BindingContext as Jeu;
+ if (selectedjeu != null)
+ {
+ await Navigation.PushAsync(new PageJeu(selectedjeu));
+ }
+ }
- private void SearchBar_TextChanged(object sender, TextChangedEventArgs e)
- {
- if(string.IsNullOrWhiteSpace(e.NewTextValue))
+ ///
+ /// Méthode appelée lorsqu'on appuie sur l'icône de retour.
+ ///
+ async void Back_Tapped(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)
{
- searchResults.ItemsSource = ParcourirManager.ListJeux;
+ await Navigation.PopAsync();
}
- else
+
+ ///
+ /// Méthode appelée lorsque le texte de la barre de recherche change.
+ ///
+ private void SearchBar_TextChanged(object sender, TextChangedEventArgs e)
{
- searchResults.ItemsSource = ParcourirManager.ListJeux.Where(i => i.Nom.ToLower().Contains(e.NewTextValue.ToLower()));
+ if (string.IsNullOrWhiteSpace(e.NewTextValue))
+ {
+ searchResults.ItemsSource = ParcourirManager.ListJeux;
+ }
+ else
+ {
+ searchResults.ItemsSource = ParcourirManager.ListJeux.Where(i => i.Nom.ToLower().Contains(e.NewTextValue.ToLower()));
+ }
}
}
-}
\ No newline at end of file
+}
diff --git a/Sources/GameAtlas/GameAtlas/Views/PageProfil.xaml.cs b/Sources/GameAtlas/GameAtlas/Views/PageProfil.xaml.cs
index 0d903d1..fdd336a 100644
--- a/Sources/GameAtlas/GameAtlas/Views/PageProfil.xaml.cs
+++ b/Sources/GameAtlas/GameAtlas/Views/PageProfil.xaml.cs
@@ -2,21 +2,37 @@ using Models;
namespace GameAtlas.Views;
+///
+/// Code-Behind pour la page de profil.
+///
public partial class PageProfil : ContentPage
{
+ ///
+ /// Gestionnaire de profil. Manager
+ ///
public Manager ProfilManager => (App.Current as App).MyManager;
- public PageProfil()
+
+ ///
+ /// Constructeur de la page de profil.
+ ///
+ public PageProfil()
{
InitializeComponent();
BindingContext = ProfilManager;
}
+ ///
+ /// Méthode appelée lorsque la page est affichée.
+ ///
protected override void OnAppearing()
{
base.OnAppearing();
SwitchPage();
}
+ ///
+ /// Méthode pour basculer vers une autre page en fonction de l'utilisateur connecté.
+ ///
async void SwitchPage()
{
if (ProfilManager.ConnectedUser == null)
@@ -29,6 +45,9 @@ public partial class PageProfil : ContentPage
}
}
+ ///
+ /// Méthode appelée lorsqu'un jeu est sélectionné.
+ ///
async void OnGame_Tapped(System.Object sender, EventArgs e)
{
var selectedjeu = (sender as ImageButton)?.BindingContext as Jeu;
@@ -40,11 +59,17 @@ public partial class PageProfil : ContentPage
}
+ ///
+ /// Méthode appelée lorsqu'on appuie sur l'icône d'administration.
+ ///
async void OnAdmin_Tapped(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)
{
await Shell.Current.GoToAsync(nameof(PageAdmin));
}
+ ///
+ /// Méthode appelée lorsqu'on appuie sur l'icône de déconnexion.
+ ///
async void OnDisconnect_Tapped(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)
{
await Shell.Current.GoToAsync("//page/PageAccueil");
diff --git a/Sources/GameAtlas/Models/Manager.cs b/Sources/GameAtlas/Models/Manager.cs
index 0f650dc..d5f122e 100644
--- a/Sources/GameAtlas/Models/Manager.cs
+++ b/Sources/GameAtlas/Models/Manager.cs
@@ -27,7 +27,7 @@ namespace Models
private ObservableCollection topRatedGames;
///
- /// Les jeux les mieux notés.
+ /// Les jeux les mieux notes.
///
public ObservableCollection TopRatedGames
{
@@ -79,7 +79,7 @@ namespace Models
}
///
- /// Gestionnaire de persistance utilisé pour charger et sauvegarder les données.
+ /// Gestionnaire de persistance utilisé pour charger et sauvegarder les donnees.
///
public IPersistanceManager Persistance { get; set; }