예제 #1
0
        // Création d'un héro
        public void CréationHero(Hero hero)
        {
            try
            {
                using (EntitiesGEDEquipe1 contexte = new EntitiesGEDEquipe1())
                {
                    // Ajouter le héro au compte du joueur et au monde
                    CompteJoueur compte = contexte.CompteJoueurs.Find(hero.CompteJoueurId);
                    hero.CompteJoueur = compte;
                    Monde monde = contexte.Mondes.Find(hero.MondeId);
                    hero.Monde = monde;

                    if ((hero.y > -1 && hero.y <= monde.LimiteY) && (hero.x > -1 && hero.x <= monde.LimiteX) &&
                        monde.Id == hero.MondeId && hero.NomHero != "" && hero.Niveau > 0 && hero.CompteJoueurId == compte.Id &&
                        !(contexte.Heros.Any(z => z.Id == hero.Id)))
                    {
                        compte.Heros.Add(hero);
                        monde.Heros.Add(hero);

                        // Donner une classe de novice si la classe est à null
                        if (hero.Classe == null)
                        {
                            hero.ClasseId = 2056;
                            hero.Classe   = contexte.Classes.Find(hero.ClasseId);
                        }
                        contexte.Heros.Add(hero);
                        contexte.SaveChanges();
                        RetournerHeros();
                    }
                }
            }
            catch (Exception)
            {
            }
        }
예제 #2
0
        public AccountDetailsDTO GetAccountInfoByUsername(string username)
        {
            try
            {
                using (var context = new HugoLANDContext())
                {
                    CompteJoueur account = context.CompteJoueurs
                                           .Where(p => p.NomJoueur == username)
                                           .First();
                    AccountDetailsDTO a = new AccountDetailsDTO
                    {
                        Id              = account.Id,
                        Email           = account.Courriel,
                        LastName        = account.Nom,
                        PlayerName      = account.NomJoueur,
                        FirstName       = account.Prenom,
                        TypeUtilisateur = account.TypeUtilisateur
                    };

                    return(a);
                }
            }
            catch
            {
                return(null);
            }
        }
예제 #3
0
        /// <summary>
        /// Auteur: Mathew Lemonde
        /// Description : Creer un nouveau compte
        /// </summary>
        /// <param name="sUsername">Nom d'Utilisateur</param>
        /// <param name="sPass">Mot de passe</param>
        /// <param name="sEmail">Adresse e-mail</param>
        /// <param name="sFname">Prénom</param>
        /// <param name="sLname">Nom de Famille</param>
        /// <param name="iType"> Type de compte (int)  0=Util, 1=Admin</param>
        /// <returns>false si deja pris</returns>
        public bool CreatePlayer(string sUsername, string sPass, string sEmail, string sFname, string sLname, int iType)
        {
            var account = context.CompteJoueurs.FirstOrNull(c => c.NomUtilisateur == sUsername);

            if (account != null)
            {
                return(false);
            }

            string sPassword = PasswordHash.CreateHash(sPass);

            CompteJoueur Account = new CompteJoueur()
            {
                Courriel        = sEmail,
                NomUtilisateur  = sUsername,
                TypeUtilisateur = iType,
                Nom             = sLname,
                Prenom          = sFname,
                Password        = sPassword
            };

            context.CompteJoueurs.Add(Account);
            context.SaveChanges();
            return(true);
        }
예제 #4
0
        /// <summary>
        /// Sauvegarde les informations du nouveau utilisateur dans la base de données et test s'il a été entré correctement
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSave_Click(object sender, EventArgs e)
        {
            CompteJoueur User = new CompteJoueur();
            User.Courriel = txtEmail.Text;
            User.Nom = txtFirstName.Text;
            User.NomUtilisateur = txtUsername.Text;
            User.Password = txtPassword.Text;
            User.Prenom = txtFirstName.Text;
            if (rdAdmin.Checked)
                User.TypeUtilisateur = 1;
            else if (rdUser.Checked)
                User.TypeUtilisateur = 2;
            _dbContext.CompteJoueurs.Add(User);
            _dbContext.SaveChanges();

            var queryTest = (from db in _dbContext.CompteJoueurs
                            where db.NomUtilisateur == txtUsername.Text
                            select db).ToList();
            if (queryTest.Count > 0)
            {
                lblNewUserActions.ForeColor = Color.Green;
                lblNewUserActions.Text = "L'utilisateur a été ajouté correctement";
            }
            else
            {
                lblNewUserActions.ForeColor = Color.Red;
                lblNewUserActions.Text = "L'utilisateur n'a pas été ajouté correctement";
            }
        }
예제 #5
0
 public bool CreateHero(HeroDetailsDTO dto)
 {
     try
     {
         using (var context = new HugoLANDContext())
         {
             Monde        monde        = context.Mondes.First(m => m.Description == dto.World);
             Classe       classe       = context.Classes.First(c => c.NomClasse == dto.Class);
             CompteJoueur compteJoueur = context.CompteJoueurs.First(a => a.NomJoueur == dto.UserName);
             var          hero         = new Hero
             {
                 Niveau       = 1,
                 Experience   = 0,
                 x            = 0,
                 y            = 0,
                 StatStr      = dto.StatStr,
                 StatDex      = dto.StatDex,
                 StatReg      = dto.StatReg,
                 StatVitalite = dto.StatVitality,
                 NomHero      = dto.HeroName,
                 EstConnecte  = false,
                 Classe       = classe,
                 CompteJoueur = compteJoueur,
                 Monde        = monde
             };
             context.Entry(hero).State = EntityState.Added;
             context.SaveChanges();
         }
         return(true);
     }
     catch
     {
         return(false);
     }
 }
예제 #6
0
 // Logout a user in database
 public void Déconnexion(CompteJoueur compte)
 {
     using (EntitiesGEDEquipe1 context = new EntitiesGEDEquipe1())
     {
         CompteJoueur compteJoueur = context.CompteJoueurs.FirstOrDefault(x => x.NomJoueur == compte.NomJoueur);
         compteJoueur.Connexion = false;
         context.SaveChanges();
     }
 }
예제 #7
0
        // 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);
        }
예제 #8
0
        /// <summary>
        /// Constructeur
        /// </summary>
        /// <param name="couriel"></param>
        /// <param name="nom"></param>
        /// <param name="prenom"></param>
        /// <param name="username"></param>
        /// <param name="mdp"></param>
        /// <param name="type"></param>
        public cCompteJoueur(string courriel, string nom, string prenom, string username, string mdp, int type)
        {
            _compte = new CompteJoueur();

            _compte.Courriel        = courriel;
            _compte.Nom             = nom;
            _compte.Prenom          = prenom;
            _compte.NomUtilisateur  = username;
            _compte.Password        = mdp;
            _compte.TypeUtilisateur = type;
        }
예제 #9
0
        /// <summary>
        /// Auteur Francis Lussier
        /// </summary>
        public List <Hero> GetListHero(int compteId)
        {
            CompteJoueur compte = context.CompteJoueurs.FirstOrNull(c => c.Id == compteId);

            if (compte != null)
            {
                return(compte.Heroes.ToList());
            }
            else
            {
                return(new List <Hero>());
            }
        }
예제 #10
0
 // 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);
     }
 }
예제 #11
0
 // 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);
     }
 }
예제 #12
0
        // 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);
        }
예제 #13
0
        // Connexion du compte d'un joueur à l'aide de la procédure stockée
        public CompteJoueur ConnexionCompteJoueur(string pNomJoueur, string pMotDePasse)
        {
            string          Message         = "";
            ObjectParameter objectParameter = new ObjectParameter("message", Message);

            using (EntitiesGEDEquipe1 context = new EntitiesGEDEquipe1())
            {
                var procédureInsertion = context.Connexion(pNomJoueur, pMotDePasse, objectParameter);
                if (objectParameter.Value.ToString() == "SUCCESS")
                {
                    CompteJoueur compteJoueur = context.CompteJoueurs.FirstOrDefault(x => x.NomJoueur == pNomJoueur);
                    compteJoueur.Connexion = true;
                    context.SaveChanges();
                    RafraichirComptes();
                    return(compteJoueur);
                }
                else
                {
                    return(new CompteJoueur());
                }
            }
        }
예제 #14
0
        // Suppression d'un héro
        public void SuppressionHero(Hero hero)
        {
            try
            {
                using (EntitiesGEDEquipe1 contexte = new EntitiesGEDEquipe1())
                {
                    Monde        monde  = contexte.Mondes.Find(hero.MondeId);
                    CompteJoueur compte = contexte.CompteJoueurs.Find(hero.CompteJoueurId);
                    monde.Heros.Remove(hero);
                    compte.Heros.Remove(hero);

                    if (contexte.Heros.Any(x => x.Id == hero.Id))
                    {
                        contexte.Heros.Remove(contexte.Heros.Find(hero.Id));
                        contexte.SaveChanges();
                        RetournerHeros();
                    }
                }
            }
            catch (Exception)
            {
            }
        }
예제 #15
0
        /// <summary>
        /// Auteur Francis Lussier
        /// </summary>
        public void CreateHero(int MondeID, int compteId, int classeId, int X, int Y, int niveau, int dex, int str, int stamina, int Int, long experience, decimal argent)
        {
            var Monde = context.Mondes.FirstOrNull(c => c.Id == MondeID);

            if (Monde == null)
            {
                return;
            }

            Classe       classe = context.Classes.FirstOrNull(c => c.Id == classeId);
            CompteJoueur compte = context.CompteJoueurs.FirstOrNull(c => c.Id == compteId);

            if (classe == null || compte == null)
            {
                return;
            }

            Hero hero = new Hero()
            {
                MondeId        = MondeID,
                Argent         = argent,
                ClasseId       = classeId,
                CompteJoueurId = compteId,
                Experience     = experience,
                Niveau         = niveau,
                StatBaseDex    = dex,
                StatBaseInt    = Int,
                StatBaseStam   = stamina,
                StatBaseStr    = str,
                x = X,
                y = Y
            };

            context.Heroes.Add(hero);
            context.SaveChanges();
        }