// Supression du compte d'un joueur
        public CompteJoueur SupprimerCompteJoueur(CompteJoueur compteJoueur)
        {
            try
            {
                using (EntitiesGEDEquipe1 contexte = new EntitiesGEDEquipe1())
                {
                    List <Hero> lstheros = contexte.Heros.Where(x => x.CompteJoueurId == compteJoueur.Id).ToList();
                    foreach (Hero hero in lstheros)
                    {
                        List <InventaireHero> inventaireHeroes = contexte.InventaireHeroes.Where(x => x.IdHero == hero.Id).ToList();
                        foreach (InventaireHero inventaire in inventaireHeroes)
                        {
                            using (SqlConnection connection = new SqlConnection(Constantes.ConnectionString))
                            {
                                //la commade a exécuter avec la query et la connection
                                SqlCommand sql = new SqlCommand(Constantes.RequeteDeleteItem, connection);
                                //insérer toutes les valeurs dans les paramêtres
                                sql.Parameters.AddWithValue("@ItemId", inventaire.ItemId);
                                // ouvrir la connection
                                connection.Open();
                                // exécuter la commande
                                sql.ExecuteNonQuery();
                                // Ferme la connection
                                connection.Close();
                            }
                        }
                    }

                    using (SqlConnection connection = new SqlConnection(Constantes.ConnectionString))
                    {
                        //la commade a exécuter avec la query et la connection
                        SqlCommand sql = new SqlCommand(Constantes.RequeteDeleteHeroDuCompteJoueur, connection);
                        //insérer toutes les valeurs dans les paramêtres
                        sql.Parameters.AddWithValue("@CompteJoueurId", compteJoueur.Id);
                        // ouvrir la connection
                        connection.Open();
                        // exécuter la commande
                        sql.ExecuteNonQuery();
                        // Ferme la connection
                        connection.Close();
                    }

                    contexte.SaveChanges();
                    RafraichirComptes();
                }
            }
            catch (Exception ex)
            {
                LstErreursComptesJoueurs.Add(ex.Message);
            }

            compteJoueur = new CompteJoueur();
            return(compteJoueur);
        }
 // Get a user account by user name
 public void ObtenirCompte(string nomJoueur)
 {
     try
     {
         using (EntitiesGEDEquipe1 contexte = new EntitiesGEDEquipe1())
         {
             CompteCourrant = contexte.CompteJoueurs.FirstOrDefault(x => x.NomJoueur == nomJoueur);
         }
     }
     catch (Exception ex)
     {
         LstErreursComptesJoueurs.Add(ex.Message);
     }
 }
 // Refresh user's list with database
 public void RafraichirComptes()
 {
     try
     {
         using (EntitiesGEDEquipe1 contexte = new EntitiesGEDEquipe1())
         {
             LstComptes = contexte.CompteJoueurs.ToList();
         }
     }
     catch (Exception ex)
     {
         LstErreursComptesJoueurs.Add(ex.Message);
     }
 }
 // Update the role of a user in database
 public void UpdateRole(string sId, string sRole)
 {
     try
     {
         int             iId      = Int32.Parse(sId);
         Constantes.Role enumRole = (Constantes.Role)Enum.Parse(typeof(Constantes.Role), sRole, true);
         using (EntitiesGEDEquipe1 contexte = new EntitiesGEDEquipe1())
         {
             CompteJoueur compte = contexte.CompteJoueurs.FirstOrDefault(x => x.Id == iId);
             compte.TypeUtilisateur = (int)enumRole;
             contexte.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         LstErreursComptesJoueurs.Add(ex.Message);
     }
 }
        // Modification complète d'un compte joueur à l'aide de l'envoie
        // d'un compte joueur contenant l'ID du compte visé, des informations souhaités et
        // d'une string contenant le mot de passe en claire.
        public CompteJoueur ModifierCompteJoueur(CompteJoueur compteJoueur, string MotDePasse)
        {
            try
            {
                CompteJoueur        compteJoueurBD     = new CompteJoueur();
                CompteJoueur        compteJoueurUpdate = new CompteJoueur();
                List <CompteJoueur> compteJoueurs      = new List <CompteJoueur>();
                using (EntitiesGEDEquipe1 contexte = new EntitiesGEDEquipe1())
                {
                    // Création d'un nouveau compte pour updater le mot de passe
                    string          Message            = "";
                    ObjectParameter objectParameter    = new ObjectParameter("message", Message);
                    var             procédureInsertion = contexte.CreerCompteJoueur("Update", "Update", "Update", "Update", 1, MotDePasse, objectParameter);
                    contexte.SaveChanges();
                    compteJoueurBD = contexte.CompteJoueurs.FirstOrDefault(x => x.Id == compteJoueur.Id);

                    compteJoueurs      = contexte.CompteJoueurs.ToList();
                    compteJoueurUpdate = compteJoueurs.Last();

                    compteJoueurBD.NomJoueur       = compteJoueur.NomJoueur;
                    compteJoueurBD.Courriel        = compteJoueur.Courriel;
                    compteJoueurBD.Prenom          = compteJoueur.Prenom;
                    compteJoueurBD.Nom             = compteJoueur.Nom;
                    compteJoueurBD.TypeUtilisateur = compteJoueur.TypeUtilisateur;
                    compteJoueurBD.MotDePasseHash  = compteJoueurUpdate.MotDePasseHash;
                    compteJoueurBD.Salt            = compteJoueurUpdate.Salt;

                    contexte.SaveChanges();
                }
                SupprimerCompteJoueur(compteJoueurUpdate);
                RafraichirComptes();
            }
            catch (Exception ex)
            {
                LstErreursComptesJoueurs.Add(ex.Message);
            }

            compteJoueur = new CompteJoueur();
            return(compteJoueur);
        }
        // Determine the neccesity to update users list
        public bool CompareUsersList()
        {
            try
            {
                using (EntitiesGEDEquipe1 contexte = new EntitiesGEDEquipe1())
                {
                    List <CompteJoueur> lstComptes = contexte.CompteJoueurs.ToList();

                    if (lstComptes.Count != LstComptes.Count)
                    {
                        return(true);
                    }
                    else
                    {
                        for (int i = 0; i < LstComptes.Count; i++)
                        {
                            if (LstComptes[i].Connexion != lstComptes[i].Connexion)
                            {
                                return(true);
                            }
                            if (LstComptes[i].TypeUtilisateur != lstComptes[i].TypeUtilisateur)
                            {
                                return(true);
                            }
                        }
                        return(false);
                    }
                }
            }
            catch (Exception ex)
            {
                LstErreursComptesJoueurs.Add(ex.Message);
                RafraichirComptes();
                return(true);
            }
        }