/// <summary>
        /// call method from data layer to retrieve list og clients
        /// return datatable as data type
        /// </summary>
        /// <param name="iID"></param>
        /// <returns></returns>
        public override DataTable RecupererListePersonnes(int iID)
        {
            DataTable resultat = new DataTable();

            accesDonnees = new clsChefRayonAccesDonnees();

            resultat = accesDonnees.RecupererListePersonnes(iID);

            return(resultat);
        }
        /// <summary>
        /// over ride adbstract method to create a new client
        /// validate  client info
        /// instanciate data layer abstract class
        /// call method to save client data in data layer
        /// </summary>
        /// <param name="personne"></param>
        public override void CreerPersonne(clsPersonne personne)
        {
            if (!EstValabe(personne))
            {
                throw new Exception(clsCommun.ErreurValidationClients);
            }

            accesDonnees = new clsSuperviseurAccesDonnees();
            accesDonnees.CreerPersonnes(personne);
        }
        /// <summary>
        ///  call method from data layer
        /// retrieve client info by vlient id
        /// retrieve client shopping cart based on client id
        /// assign value to return data type
        /// </summary>
        /// <param name="iID"></param>
        /// <returns></returns>
        public clsPanier RecupererPanierPersonne(int iID)
        {
            clsPanier resultat = new clsPanier();
            DataSet   dataSet  = new DataSet();

            gestion = new clsSuperviseurAccesDonnees();
            dataSet = gestion.RecupererPanierPersonne(iID);

            if (dataSet?.Tables[0] == null || dataSet?.Tables[1] == null)
            {
                throw new Exception(clsCommun.ErreurGeneriqueQuitterApplication);
            }
            if (dataSet?.Tables[0]?.Rows.Count == 0)
            {
                throw new Exception(clsCommun.ErreurGeneriqueQuitterApplication);
            }

            resultat = AttribuerValeur(dataSet);
            return(resultat);
        }
        /// <summary>
        /// validate id and password
        /// call mathod from data layer
        /// if valid retrieve user info
        /// </summary>
        /// <param name="utilisatueur"></param>
        /// <param name="motDePasse"></param>
        /// <returns></returns>
        public clsPersonne AuthentifierPersonne(string utilisatueur, string motDePasse)
        {
            clsPersonne resultat = new clsPersonne();

            try
            {
                if (!Valider(utilisatueur, motDePasse))
                {
                    throw new Exception();
                }

                DataTable tableDeDonnees = new DataTable();

                gestion        = new clsSuperviseurAccesDonnees();
                tableDeDonnees = gestion.AuthentifierPersonne(utilisatueur, motDePasse);

                if (tableDeDonnees == null)
                {
                    throw new Exception();
                }

                resultat.iID            = Convert.ToInt32(tableDeDonnees.Rows[0][0]);
                resultat.eNiveau        = RecupereNiveauUtilisateur(Convert.ToInt32(tableDeDonnees.Rows[0][1]));
                resultat.sNom           = tableDeDonnees.Rows[0][2].ToString();
                resultat.sPrenom        = tableDeDonnees.Rows[0][3].ToString();
                resultat.dDateNaissance = Convert.ToDateTime(tableDeDonnees.Rows[0][4]);
                resultat.eSexe          = RecupereSexe(tableDeDonnees.Rows[0][5].ToString());
                resultat.sAdresse       = tableDeDonnees.Rows[0][7].ToString();

                return(resultat);
            }
            catch (Exception)
            {
                return(resultat = null);
            }
        }
 /// <summary>
 /// update client
 /// </summary>
 /// <param name="personne"></param>
 public void ModifierPersonnes(clsPersonne personne)
 {
     gestion = new clsSuperviseurAccesDonnees();
     gestion.MAJPersonne(personne);
 }
 /// <summary>
 /// delete client by its id
 /// call data layer method
 /// </summary>
 /// <param name="iID"></param>
 public override void SupprimerPersonne(int iID)
 {
     accesDonnees = new clsSuperviseurAccesDonnees();
     accesDonnees.SupprimerPersonne(iID);
 }