using Models;
using System.Diagnostics;

namespace LOLAPP.View;

public partial class Login : ContentPage
{
    public Manager Mgr => (App.Current as App).MyManager;
    public Login()
    {
        InitializeComponent();
        BindingContext = Mgr;
    }
    private void LoginUtilisateur_Clicked(object sender, EventArgs e)
    {
        string username = usernameEntry.Text;
        string password = passwordEntry.Text;

        // Vérifier si l'utilisateur existe et les informations de connexion sont valides
        Utilisateur utilisateur = Mgr._utilisateur.FirstOrDefault(u => u.Username == username && u.Password == password);
        if (utilisateur != null && Mgr.UtilisateurConnecte == null)
        {
            // Connexion réussie
            Mgr.UtilisateurConnecte = utilisateur;
            DisplayAlert("Succès", "Connexion réussie", "OK");
        }
        else if (Mgr.UtilisateurConnecte != null)
        {
            // Utilisateur non connecté
            DisplayAlert("Erreur", "Vous êtes déjà connecter", "OK");
        }
        else
        {
            // Informations de connexion incorrectes
            DisplayAlert("Erreur", "Nom d'utilisateur ou mot de passe incorrect", "OK");
        }

        usernameEntry.Text = "";
        passwordEntry.Text = "";
    }

    private void LogoutUtilisateur_Clicked(object sender, EventArgs e)
    {
        string username = usernameEntry.Text;
        string password = passwordEntry.Text;

        // Vérifier si l'utilisateur existe et les informations de connexion sont valides
        Utilisateur utilisateur = Mgr._utilisateur.FirstOrDefault(u => u.Username == username && u.Password == password);
        if (utilisateur != null && Mgr.UtilisateurConnecte!= null)
        {
            // Connexion réussie
            Mgr.UtilisateurConnecte = null;
            DisplayAlert("Succès", "Déconnexion réussie", "OK");
        }
        else if(Mgr.UtilisateurConnecte == null)
        {
            // Utilisateur non connecté
            DisplayAlert("Erreur", "Vous n'êtes pas connecter", "OK");
        }
        else
        {
            // Informations de connexion incorrectes
            DisplayAlert("Erreur", "Nom d'utilisateur ou mot de passe incorrect", "OK");
        }

        usernameEntry.Text = "";
        passwordEntry.Text = "";
    }

    private void SupprimerUtilisateur_Clicked(object sender, EventArgs e)
    {
        string username = usernameEntry.Text;
        string password = passwordEntry.Text;

        // Recherche de l'utilisateur dans la liste
        Utilisateur utilisateur = Mgr._utilisateur.FirstOrDefault(u => u.Username == username && u.Password == password);
        if (utilisateur != null)
        {
            // Suppression de l'utilisateur
            Mgr.RemoveUtilisateur(utilisateur);
            Mgr.Sauvdon();
            DisplayAlert("Succès", "Utilisateur supprimé avec succès", "OK");
        }
        else
        {
            // Utilisateur non trouvé
            DisplayAlert("Erreur", "Nom d'utilisateur ou mot de passe incorrect", "OK");
        }

        usernameEntry.Text = "";
        passwordEntry.Text = "";
    }
}