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); }
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); }