Ejemplo n.º 1
0
        public bool Ajouter_Partie(SNAP_DATABASE Contexte_database, string nom, string date, int nb_joueur)
        {
            //regarder si la partie est déjà présent

            var Liste_parties = Contexte_database.Database.SqlQuery <string>("SELECT Nom FROM Entity_partie").ToList();

            for (int i = 0; i < Liste_parties.Count(); i++)
            {
                if (Liste_parties.ElementAt(i).ToString().Equals(nom))
                {
                    MessageBox.Show("Ajout impossible, cette partie est déjà dans la liste.");
                    return(false);
                }
            }
            Entity_partie partie = new Entity_partie
            {
                Nom  = nom,
                Date = date,
                Nombre_de_participant = nb_joueur,
            };

            Contexte_database.Table_Parties.Add(partie);
            Contexte_database.SaveChanges();
            return(true);
        }
Ejemplo n.º 2
0
        public void Calcul_stats(SNAP_DATABASE Ctx_database_SNAP, string nom_partie, string[] Nom_classement_ref, int[] point_classement_ref)
        {
            //récupération de la liste des joueurs ayant le plus de kill
            var most_kill_p      = Ctx_database_SNAP.Database.SqlQuery <int>("SELECT MAX(Nombre_kill) FROM Entity_Occurence WHERE Partie_ID= '" + nom_partie + "'").ToList();
            var Joueur_most_kill = Ctx_database_SNAP.Database.SqlQuery <string>("SELECT Joueurs_ID FROM Entity_Occurence WHERE Partie_ID= '" + nom_partie + "' AND Nombre_kill='" + most_kill_p.ElementAt(0).ToString() + "'").ToList();

            //récupération de la liste des joueurs ayant le plus de death
            var most_death_p      = Ctx_database_SNAP.Database.SqlQuery <int>("SELECT MAX(Nombre_death) FROM Entity_Occurence WHERE Partie_ID= '" + nom_partie + "'").ToList();
            var Joueur_most_death = Ctx_database_SNAP.Database.SqlQuery <string>("SELECT Joueurs_ID FROM Entity_Occurence WHERE Partie_ID= '" + nom_partie + "' AND Nombre_death='" + most_death_p.ElementAt(0).ToString() + "'").ToList();
            //récupération de la liste des joueurs ayant le plus d'assist
            var most_assist_p      = Ctx_database_SNAP.Database.SqlQuery <int>("SELECT MAX(Nombre_assist) FROM Entity_Occurence WHERE Partie_ID= '" + nom_partie + "'").ToList();
            var Joueur_most_assist = Ctx_database_SNAP.Database.SqlQuery <string>("SELECT Joueurs_ID FROM Entity_Occurence WHERE Partie_ID= '" + nom_partie + "' AND Nombre_assist='" + most_assist_p.ElementAt(0).ToString() + "'").ToList();
            //récupération de la liste des joueurs ayant le facteur de risque le plus haut
            var most_Facteur_risque_p = Ctx_database_SNAP.Database.SqlQuery <int>("SELECT MAX(facteur_de_risque) FROM Entity_Occurence WHERE Partie_ID= '" + nom_partie + "'").ToList();
            var Joueur_most_FC        = Ctx_database_SNAP.Database.SqlQuery <string>("SELECT Joueurs_ID FROM Entity_Occurence WHERE Partie_ID= '" + nom_partie + "' AND facteur_de_risque='" + most_Facteur_risque_p.ElementAt(0).ToString() + "'").ToList();
            //récupération de la liste des joueurs ayant le facteur de risque le plus bas
            var less_Facteur_risque_p = Ctx_database_SNAP.Database.SqlQuery <int>("SELECT MIN(facteur_de_risque) FROM Entity_Occurence WHERE Partie_ID= '" + nom_partie + "'").ToList();
            var Joueur_less_FC        = Ctx_database_SNAP.Database.SqlQuery <string>("SELECT Joueurs_ID FROM Entity_Occurence WHERE Partie_ID= '" + nom_partie + "' AND facteur_de_risque='" + less_Facteur_risque_p.ElementAt(0).ToString() + "'").ToList();



            //trophée mort dans l'oeuf
            var              index_occ    = Ctx_database_SNAP.Database.SqlQuery <int>("SELECT id FROM Entity_Occurence WHERE Partie_ID= '" + nom_partie + "' AND Nombre_death='" + most_death_p.ElementAt(0).ToString() + "'").ToList().ElementAt(0);
            var              occ_tomodify = Ctx_database_SNAP.Table_Occurence.Find(index_occ);
            string           trophee      = "mort dans l'oeuf";
            Entity_Occurence updatedOcc   = occ_tomodify;

            updatedOcc.Trophe_ID = updatedOcc.Trophe_ID + "\n" + trophee;
            // mise à jour et sauvegarde du contexte.
            Ctx_database_SNAP.Entry(occ_tomodify).CurrentValues.SetValues(updatedOcc);
            Ctx_database_SNAP.SaveChanges();

            //trophée Hero
            index_occ            = Ctx_database_SNAP.Database.SqlQuery <int>("SELECT id FROM Entity_Occurence WHERE Partie_ID= '" + nom_partie + "' AND facteur_de_risque='" + most_Facteur_risque_p.ElementAt(0).ToString() + "'").ToList().ElementAt(0);
            occ_tomodify         = Ctx_database_SNAP.Table_Occurence.Find(index_occ);
            trophee              = "Héros";
            updatedOcc           = occ_tomodify;
            updatedOcc.Trophe_ID = updatedOcc.Trophe_ID + "\n" + trophee;

            // mise à jour et sauvegarde du contexte.
            Ctx_database_SNAP.Entry(occ_tomodify).CurrentValues.SetValues(updatedOcc);
            Ctx_database_SNAP.SaveChanges();

            //trophée Poule mouillée
            index_occ            = Ctx_database_SNAP.Database.SqlQuery <int>("SELECT id FROM Entity_Occurence WHERE Partie_ID= '" + nom_partie + "' AND facteur_de_risque='" + less_Facteur_risque_p.ElementAt(0).ToString() + "'").ToList().ElementAt(0);
            occ_tomodify         = Ctx_database_SNAP.Table_Occurence.Find(index_occ);
            trophee              = "Poule mouillée";
            updatedOcc           = occ_tomodify;
            updatedOcc.Trophe_ID = updatedOcc.Trophe_ID + "\n" + trophee;

            // mise à jour et sauvegarde du contexte.
            Ctx_database_SNAP.Entry(occ_tomodify).CurrentValues.SetValues(updatedOcc);
            Ctx_database_SNAP.SaveChanges();

            //trophée Folie meurtrière
            index_occ            = Ctx_database_SNAP.Database.SqlQuery <int>("SELECT id FROM Entity_Occurence WHERE Partie_ID= '" + nom_partie + "' AND Nombre_kill='" + most_kill_p.ElementAt(0).ToString() + "'").ToList().ElementAt(0);
            occ_tomodify         = Ctx_database_SNAP.Table_Occurence.Find(index_occ);
            trophee              = "Folie meurtrière";
            updatedOcc           = occ_tomodify;
            updatedOcc.Trophe_ID = updatedOcc.Trophe_ID + "\n" + trophee;

            // mise à jour et sauvegarde du contexte.
            Ctx_database_SNAP.Entry(occ_tomodify).CurrentValues.SetValues(updatedOcc);
            Ctx_database_SNAP.SaveChanges();

            //trophée Docteur
            index_occ            = Ctx_database_SNAP.Database.SqlQuery <int>("SELECT id FROM Entity_Occurence WHERE Partie_ID= '" + nom_partie + "' AND Nombre_assist='" + most_assist_p.ElementAt(0).ToString() + "'").ToList().ElementAt(0);
            occ_tomodify         = Ctx_database_SNAP.Table_Occurence.Find(index_occ);
            trophee              = "Docteur";
            updatedOcc           = occ_tomodify;
            updatedOcc.Trophe_ID = updatedOcc.Trophe_ID + "\n" + trophee;

            // mise à jour et sauvegarde du contexte.
            Ctx_database_SNAP.Entry(occ_tomodify).CurrentValues.SetValues(updatedOcc);
            Ctx_database_SNAP.SaveChanges();



            //détermination du meilleur joueur
            string Best_player = "";

            if (Joueur_most_kill.ElementAt(0).ToString() == Joueur_most_FC.ElementAt(0).ToString())
            {
                Best_player = Joueur_most_kill.ElementAt(0).ToString();
            }

            else if ((Joueur_most_assist.ElementAt(0).ToString() != Joueur_most_death.ElementAt(0).ToString()) && (Joueur_most_assist.ElementAt(0).ToString() == Joueur_most_FC.ElementAt(0).ToString()))
            {
                Best_player = Joueur_most_assist.ElementAt(0).ToString();
            }
            else if ((Joueur_most_kill.ElementAt(0).ToString() != Joueur_most_death.ElementAt(0).ToString()) && (Joueur_most_kill.ElementAt(0).ToString() != Joueur_less_FC.ElementAt(0).ToString()))
            {
                Best_player = Joueur_most_kill.ElementAt(0).ToString();
            }
            else
            {
                Best_player = Joueur_most_kill.ElementAt(0).ToString();
            }

            //mise à jour meilleur joueur
            index_occ    = Ctx_database_SNAP.Database.SqlQuery <int>("SELECT id FROM Entity_Occurence WHERE Partie_ID= '" + nom_partie + "' AND Joueurs_ID='" + Best_player + "'").ToList().ElementAt(0);
            occ_tomodify = Ctx_database_SNAP.Table_Occurence.Find(index_occ);

            updatedOcc             = occ_tomodify;
            updatedOcc.Best_player = "oui";

            // mise à jour et sauvegarde du contexte.
            Ctx_database_SNAP.Entry(occ_tomodify).CurrentValues.SetValues(updatedOcc);
            Ctx_database_SNAP.SaveChanges();
            //mise à jour de la table partie
            index_occ = Ctx_database_SNAP.Database.SqlQuery <int>("SELECT id FROM Entity_partie WHERE Nom= '" + nom_partie + "'").ToList().ElementAt(0);
            var           part_tomodify = Ctx_database_SNAP.Table_Parties.Find(index_occ);
            Entity_partie updatedP      = part_tomodify;

            updatedP             = part_tomodify;
            updatedP.Best_player = Best_player;

            // mise à jour et sauvegarde du contexte.
            Ctx_database_SNAP.Entry(part_tomodify).CurrentValues.SetValues(updatedP);
            Ctx_database_SNAP.SaveChanges();
            //mise à jour de la table joueur
            //récupération de l'ID unique grâce au surom
            var index_joueur = Ctx_database_SNAP.Database.SqlQuery <int>("SELECT id FROM Entity_Joueurs WHERE Surnom ='" + Best_player + "'").ToList().ElementAt(0);
            //Récupération du joueur et de ses paramètres.
            var Joueur_tomodify = Ctx_database_SNAP.Table_Joueurs.Find(index_joueur);
            //Modifier le joueur grâce à une nouvelle entrée.
            Entity_joueurs updatedUser = Joueur_tomodify;

            updatedUser.Nb_parties_won = updatedUser.Nb_parties_won.Value + 1;

            // mise à jour et sauvegarde du contexte.
            Ctx_database_SNAP.Entry(Joueur_tomodify).CurrentValues.SetValues(updatedUser);
            Ctx_database_SNAP.SaveChanges();

            // récupération de la liste des joueurs pour la partie donnée

            Attribution_points_classement(nom_partie, Ctx_database_SNAP, Nom_classement_ref, point_classement_ref);
        }