/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Models.User;


import Controllers.Dialog.ShowDialog;
import Controllers.PrincipalController;
import Models.connexion;
import java.sql.ResultSet;
import java.sql.SQLException;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;



/**
 *
 * @author Maher
 */
public class ListUserDB extends PrincipalController{
    
    
    connexion cnx = new connexion();
    ShowDialog SD = new ShowDialog();
    
    
    
    
    public String nbrUsers(){
        
        String req = "SELECT  COUNT(`idprofile`) FROM  `profile` ,  `authentification` WHERE  `idprofile` =  `idauhentification` ;";
        int sommme =0;
        if(cnx.ouverture()){
            try{
               /* Exécution d'une requête de lecture */
                ResultSet resultat = cnx.excutionquery(req);
                
                // get the number of rows from the result set
                resultat.next();
                
                 sommme= resultat.getInt(1);
            }
            catch(SQLException ex){
                System.err.println("Erreur SQL ! \n"+ex.getMessage());
            }
        }
        
        else{
            
            SD.ShowAletDialog();
            
        }
       return  Integer.toString(sommme) ;
    }
    
    
    
    public ObservableList<ListUsers> rechercheData(String ch){
        
        ObservableList<ListUsers> data=FXCollections.observableArrayList();
        String req = "SELECT  `idprofile` ,  `type_compte`, `login` ,  `nom` ,  `prenom` ,  `num_tele` "
                + "   FROM  `profile` ,  `auhentification`"
                + "   WHERE  `idprofile` =  `idauhentification` "
                + "   AND `idprofile` = "+ch+" ;";
        System.out.println(req);
        if(cnx.ouverture()){
            try{
               /* Exécution d'une requête de lecture */
                ResultSet resultat = cnx.excutionquery(req);
                //on place le curseur sur le dernier tuple
                resultat.last();
                //on récupère le numéro de la ligne
                int nombreLignes = resultat.getRow();
                if(nombreLignes>0){
                    //on repace le curseur avant la première ligne
                    resultat.beforeFirst();
                    
                    while ( resultat.next() ) {
                       
                        int idprofile = resultat.getInt( "idprofile" );
                        String type_compte=resultat.getString("type_compte");
                        String login=resultat.getString("login");
                        String nom=resultat.getString("nom");
                        String prenom=resultat.getString("prenom");
                        int tele=resultat.getInt("num_tele");
         
                        data.add(new ListUsers(idprofile,type_compte, login, nom, prenom, tele));
                        
                    }
                    
                }
                
            }
            catch(SQLException ex){
                System.err.println("Erreur SQL ! \n"+ex.getMessage());
            }
        }
        else{
            SD.ShowAletDialog();
        }
       return data ;
    }
    
    
    
    
    
    
    public ObservableList<ListUsers> getdata(){
        
        ObservableList<ListUsers> data=FXCollections.observableArrayList();
        String req = "SELECT  `idprofile` ,  `type_compte`, `login` ,  `nom` ,  `prenom` ,  `num_tele` FROM  `profile` ,  `authentification`WHERE  `idprofile` =  `idauhentification` ;";
        
        if(cnx.ouverture()){
            try{
               /* Exécution d'une requête de lecture */
                ResultSet resultat = cnx.excutionquery(req);
                //on place le curseur sur le dernier tuple
                resultat.last();
                //on récupère le numéro de la ligne
                int nombreLignes = resultat.getRow();
                if(nombreLignes>0){
                    //on repace le curseur avant la première ligne
                    resultat.beforeFirst();
                    
                    while ( resultat.next() ) {
                       
                        int idprofile = resultat.getInt( "idprofile" );
                        String type_compte=resultat.getString("type_compte");
                        String login=resultat.getString("login");
                        String nom=resultat.getString("nom");
                        String prenom=resultat.getString("prenom");
                        int tele=resultat.getInt("num_tele");
         
                        data.add(new ListUsers(idprofile,type_compte, login, nom, prenom, tele));

                    }
                }
            }
            catch(SQLException ex){
                System.err.println("Erreur SQL ! \n"+ex.getMessage());
            }
        }
        else{
            SD.ShowAletDialog();
        }
       return data ;
    }
    
}
