private void RemplirDonnees() { SelectedActeur = new G_T_Acteur(sChConn).Lire_ID(SelectedActeur.Id_Acteur); this.Text = "Acteur n°" + SelectedActeur.Id_Acteur; tbNomActeur.Text = SelectedActeur.A_Nom; tbPrenomActeur.Text = SelectedActeur.A_Prenom; InternetLink = SelectedActeur.A_Bio; // Liste de films lbListeFilms.Items.Clear(); List <C_T_Liste_Acteurs> lTmplActeurs = new G_T_Liste_Acteurs(sChConn).Lire("Id_Liste_Acteurs"); foreach (C_T_Liste_Acteurs TmplActeurs in lTmplActeurs) { if (TmplActeurs.Id_Acteur == SelectedActeur.Id_Acteur) { C_T_DVD TmpDVD = new G_T_DVD(sChConn).Lire_ID((int)TmplActeurs.Id_DVD); lbListeFilms.Items.Add(TmpDVD.D_Nom.ToString()); } } }
private void RemplirDonnees() { SelectedDVD = new G_T_DVD(sChConn).Lire_ID(SelectedDVD.Id_DVD); this.Text = "DVD n°" + SelectedDVD.Id_DVD; tbNomFilm.Text = SelectedDVD.D_Nom; tbGenre.Text = SelectedDVD.D_Genre; InternetLink = SelectedDVD.D_Synopsis; nudEmpruntMax.Value = (decimal)SelectedDVD.D_Emprunt_Max; nudAmende_p_j.Value = (decimal)SelectedDVD.D_Amende_p_J; // Acteurs lbActeurs.Items.Clear(); if (!Modifying) // On n'est pas en train de modifier les données => On n'affiche que les acteurs qui jouent dans le film { lActeursActu = new List <string>(); List <C_T_Liste_Acteurs> lTmplActeur = new G_T_Liste_Acteurs(sChConn).Lire("A_Nom"); // Toutes les listes d'acteurs NbrActeurs = 0; foreach (C_T_Liste_Acteurs TmplActeur in lTmplActeur) { if ((int)TmplActeur.Id_DVD == SelectedDVD.Id_DVD) { C_T_Acteur TmpActeur = new G_T_Acteur(sChConn).Lire_ID((int)TmplActeur.Id_Acteur); lbActeurs.Items.Add(TmpActeur.A_Nom + " " + TmpActeur.A_Prenom + " (ID=" + TmpActeur.Id_Acteur + ")"); lActeursActu.Add(TmpActeur.A_Nom + " " + TmpActeur.A_Prenom + " (ID=" + TmpActeur.Id_Acteur + ")"); NbrActeurs++; } } } else // On est en train de modifier les données => Il faut afficher tous les acteurs de la base de données { List <C_T_Acteur> lTmpActeur = new G_T_Acteur(sChConn).Lire("A_Nom"); foreach (C_T_Acteur TmpActeur in lTmpActeur) { string TmpStringActeur = TmpActeur.A_Nom + " " + TmpActeur.A_Prenom + " (ID=" + TmpActeur.Id_Acteur + ")"; lbActeurs.Items.Add(TmpStringActeur); if (lActeursActu != null) { foreach (string Acteur in lActeursActu) { if (Acteur == TmpStringActeur) { lbActeurs.SetSelected(lbActeurs.Items.Count - 1, true); } } } } } //Emprunt actuel et précédents lbClients_precedents.Items.Clear(); List <C_T_Quantite> lTmpQuantite = new G_T_Quantite(sChConn).Lire("Id_Emprunt"); foreach (C_T_Quantite TmpQuantite in lTmpQuantite) { if (TmpQuantite.Id_DVD == SelectedDVD.Id_DVD) { C_T_Emprunt TmpEmprunt = new G_T_Emprunt(sChConn).Lire_ID((int)TmpQuantite.Id_Emprunt); C_T_Client TmpClient = new G_T_Client(sChConn).Lire_ID((int)TmpEmprunt.Id_Client); // On remonte à la source pour récupérer le client if (TmpQuantite.Q_Retour == null) // Le DVD est actuellement emprunté par ce client { tbClient_actuel.Text = TmpClient.C_Nom.ToUpper() + " " + TmpClient.C_Prenom + " (ID=" + TmpClient.Id_Client + ")"; } else { lbClients_precedents.Items.Add(TmpClient.C_Nom.ToUpper() + " " + TmpClient.C_Prenom + " (ID=" + TmpClient.Id_Client + ")"); } } } if (!SelectedDVD.D_Emprunt) { tbClient_actuel.Text = "N/A"; } }
private void btnConf_Quitter_Click(object sender, EventArgs e) { if (!Modifying) // Quitter { lbActeurs.Items.Clear(); lbClients_precedents.Items.Clear(); this.Close(); } else // Confirmer { if (tbNomFilm.Text == "" || tbGenre.Text == "" || InternetLink == "" || nudEmpruntMax.Value <= 0 || nudAmende_p_j.Value <= 0 || lbActeurs.SelectedItems.Count <= 0) { MessageBox.Show("Assurez-vous d'avoir rempli toutes les informations !"); } else { if (NbrActeurs <= 0) { MessageBox.Show("ERREUR : Nombre d'acteurs = " + NbrActeurs); } else { new G_T_DVD(sChConn).Modifier(SelectedDVD.Id_DVD, tbNomFilm.Text, SelectedDVD.D_Emprunt, tbGenre.Text, (int)nudEmpruntMax.Value, (double)nudAmende_p_j.Value, InternetLink); int NbrActeursModifs = 0; // Nombres d'acteurs qui ont déjà été modifiés => sert de compteur do // Modification des acteurs jouant dans le film. 3 cas: 1) Moins d'acteurs qu'avant la modification; 2) Même nombre d'acteurs qu'avant; 3) Plus d'acteurs qu'avant. { List <C_T_Liste_Acteurs> lTmplActeurs = new G_T_Liste_Acteurs(sChConn).Lire("Id_Liste_Acteurs"); foreach (C_T_Liste_Acteurs TmplActeurs in lTmplActeurs) { if (TmplActeurs.Id_DVD == SelectedDVD.Id_DVD) // On se place sur le bon DVD { string[] TmpTabString = lbActeurs.SelectedItems[NbrActeursModifs].ToString().Split('='); TmpTabString[1] = TmpTabString[1].Remove(TmpTabString[1].Length - 1); if (!int.TryParse(TmpTabString[1], out int TmpID)) { MessageBox.Show("Erreur lors de la récupération de l'ID de l'acteur !"); } else { new G_T_Liste_Acteurs(sChConn).Modifier(TmplActeurs.Id_Liste_Acteurs, SelectedDVD.Id_DVD, TmpID); NbrActeursModifs++; } if (NbrActeursModifs == lbActeurs.SelectedItems.Count) { break; } } } }while (NbrActeursModifs < NbrActeurs && NbrActeursModifs < lbActeurs.SelectedItems.Count); // On boucle tant qu'on a pas modifié autant d'acteurs que ceux qu'il y en avait avant => encore des tables dispos (cas où on AJOUTE des acteurs par rapport à avant) // ET tant qu'on a pas modifié autant d'acteurs que ceux qui sont sélectionnés => on évite de modifier plus d'acteurs que ce qui est demandé (cas où on RETIRE des acteurs par rapport à avant) if (NbrActeursModifs < NbrActeurs) // On a modifié moins d'acteurs que ce qu'il y en avait avant => il faut supprimer des tables { List <C_T_Liste_Acteurs> lTmplActeurs = new G_T_Liste_Acteurs(sChConn).Lire("Id_Liste_Acteurs"); foreach (C_T_Liste_Acteurs TmplActeurs in lTmplActeurs) { if (TmplActeurs.Id_DVD == SelectedDVD.Id_DVD) // On se place sur le bon DVD { int NbrIDIdentiques = 0; for (int i = 0; i < lbActeurs.SelectedItems.Count; i++) { string[] TmpTabString = lbActeurs.SelectedItems[i].ToString().Split('='); TmpTabString[1] = TmpTabString[1].Remove(TmpTabString[1].Length - 1); if (!int.TryParse(TmpTabString[1], out int TmpID)) { MessageBox.Show("Erreur lors de la récupération de l'ID de l'acteur !"); } else { if (TmpID == TmplActeurs.Id_Acteur) { NbrIDIdentiques++; } } } if (NbrIDIdentiques <= 0) // On a aucun match d'ID => la table est de trop { new G_T_Liste_Acteurs(sChConn).Supprimer(TmplActeurs.Id_Liste_Acteurs); // => On la supprime } } } } else { if (lbActeurs.SelectedItems.Count > NbrActeurs) // On ajout des acteurs par rapport à avant => Il faut rajouter des tables { for (int i = NbrActeursModifs; i < lbActeurs.SelectedItems.Count; i++) { string[] TmpTabString = lbActeurs.SelectedItems[i].ToString().Split('='); TmpTabString[1] = TmpTabString[1].Remove(TmpTabString[1].Length - 1); if (!int.TryParse(TmpTabString[1], out int TmpID)) { MessageBox.Show("Erreur lors de la récupération de l'ID de l'acteur !"); } else { new G_T_Liste_Acteurs(sChConn).Ajouter(SelectedDVD.Id_DVD, TmpID); } } } } ChangeState(); RemplirDonnees(); Modified = true; } } } }