namespace MangaMap.Views; using System.Text.RegularExpressions; using System.Threading.Tasks; using Stub; using Models; /// /// Classe représentant la page de connexion de l'application. /// public partial class loginPage : ContentPage { /// /// Référence au gestionnaire de l'application. /// public Manager my_manager => (App.Current as App).MyManager; /// /// Constructeur de la page de connexion. /// public loginPage() { InitializeComponent(); } /// /// Gestionnaire d'événement lorsqu'un utilisateur clique sur le bouton "Inscription". /// /// L'objet qui a déclenché l'événement. /// Arguments de l'événement. async void OnSignUpClicked(object sender, EventArgs e) { await Shell.Current.GoToAsync("//page/secondaire/inscriptionPage"); } /// /// Gestionnaire d'événement lorsqu'un utilisateur clique sur le bouton "Connexion". /// /// L'objet qui a déclenché l'événement. /// Arguments de l'événement. async void OnLoginClicked(object sender, EventArgs e) { // Récupération de l'e-mail et du mot de passe entrés string email = emailEntry.Text; string password = passwordEntry.Text; if (string.IsNullOrWhiteSpace(email) || string.IsNullOrWhiteSpace(password)) { await DisplayAlert("Erreur", "Veuillez remplir tous les champs.", "OK"); return; } // Vérifier que l'e-mail a la bonne forme //if (!Regex.IsMatch(email, @"^[^@\s]+@[^@\s]+\.[^@\s]+$")) //{ // await DisplayAlert("Erreur", "L'e-mail n'est pas valide.", "OK"); // return; //} // Vérifier que l'utilisateur existe Utilisateur utilisateur = my_manager.Utilisateurs.FirstOrDefault(u => u.Email == email && u.MotDePasse == password); if (utilisateur == null) { await DisplayAlert("Erreur", "Le mot de passe entré est incorrect.", "OK"); return; } // On garde l'utilisateur qui vient de se connecter pour accéder à ses informations my_manager.UtilisateurActuel = utilisateur; // Rediriger l'utilisateur vers la page principale await Shell.Current.GoToAsync("//page/homePage"); } }