You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.6 KiB
51 lines
1.6 KiB
namespace MangaMap.Views;
|
|
using System.Text.RegularExpressions;
|
|
using System.Threading.Tasks;
|
|
using MangaMap.Stub;
|
|
using MangaMap.Model;
|
|
|
|
public partial class loginPage : ContentPage
|
|
{
|
|
public Manager my_manager => (App.Current as App).MyManager;
|
|
|
|
public loginPage()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
async void OnLoginClicked(object sender, EventArgs e)
|
|
{
|
|
// Récupération de l'email 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'email 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 Navigation.PushAsync(new homePage());
|
|
}
|
|
|
|
}
|