/// <summary> /// Cette methode permet de fermer l'application et de se deconnecter de la base de données /// </summary> private void QuitterApplication() { DialogResult reponse = MessageBox.Show("Voulez-vous vraiment quitté ? ", "Information", MessageBoxButtons.OKCancel, MessageBoxIcon.Information); if (reponse == DialogResult.OK) { InterfaceDB.Deconnection(); this.Close(); } }
/// <summary> /// Cette methode permet de lire le contenu du fichier xml et inserer dans la base de données /// </summary> /// <remarks> /// - Elle supprime en premier lieu , toutes les tuples qui se trouvent dans les différents tables de la base de données /// - Puis ouvre et lit le fichier XML avec <see cref="XmlDocument"/> /// - Pour chaque noeud lu , elle cree une marque , une famille , une sous famille puis un article si ils existent pas déjà /// </remarks> private void FileIntegration() { int increment = 0; XmlDocument documentXml = new XmlDocument(); /** * Suppression des tables de la base de données * */ ResultatErreur = InterfaceDB.SupprimerToutTable("Articles"); TextBox_Affichage_ResultatEtErreurs.Invoke(new AjouterFinLigneResultatErreurs(ChangerResultat), ResultatErreur); ResultatErreur = InterfaceDB.SupprimerToutTable("Familles"); TextBox_Affichage_ResultatEtErreurs.Invoke(new AjouterFinLigneResultatErreurs(ChangerResultat), ResultatErreur); ResultatErreur = InterfaceDB.SupprimerToutTable("SousFamilles"); TextBox_Affichage_ResultatEtErreurs.Invoke(new AjouterFinLigneResultatErreurs(ChangerResultat), ResultatErreur); ResultatErreur = InterfaceDB.SupprimerToutTable("Marques"); TextBox_Affichage_ResultatEtErreurs.Invoke(new AjouterFinLigneResultatErreurs(ChangerResultat), ResultatErreur); /** * Lecture des Elements dans le fichier xml choisie * */ this.NomFicherXML = this.Ouvrir_XML_Fichier.FileName; documentXml.Load(this.NomFicherXML); foreach (XmlNode enregistrement in documentXml.DocumentElement) { /** * Pour chaque noeud je recupère les élements d'un article * En creer la marque , la famille , la sous famille puis l'article */ string descriptionActicle = enregistrement.SelectSingleNode("description").InnerText; string refArticle = enregistrement.SelectSingleNode("refArticle").InnerText; double prixArticle = Double.Parse(enregistrement.SelectSingleNode("prixHT").InnerText); int quantiteArticle = 1; string nomSousfamille = enregistrement.SelectSingleNode("sousFamille").InnerText; string nomfamille = enregistrement.SelectSingleNode("famille").InnerText; string nomMarque = enregistrement.SelectSingleNode("marque").InnerText; /** * L'ordre d'insertion est importante */ InterfaceDB_Marque marque = new InterfaceDB_Marque(); ResultatErreur = marque.InsererMarque(nomMarque); TextBox_Affichage_ResultatEtErreurs.Invoke(new AjouterFinLigneResultatErreurs(ChangerResultat), ResultatErreur); InterfaceDB_Famille famille = new InterfaceDB_Famille(); ResultatErreur = famille.InsererFamille(nomfamille); TextBox_Affichage_ResultatEtErreurs.Invoke(new AjouterFinLigneResultatErreurs(ChangerResultat), ResultatErreur); InterfaceDB_Sous_Famille sousfamille = new InterfaceDB_Sous_Famille(); ResultatErreur = sousfamille.InsererSousFamille(nomfamille, nomSousfamille); TextBox_Affichage_ResultatEtErreurs.Invoke(new AjouterFinLigneResultatErreurs(ChangerResultat), ResultatErreur); Marque marqueArticle = marque.GetMarque(nomMarque); SousFamille sousFamilleArticle = sousfamille.GetSousFamille(nomSousfamille); if (marqueArticle != null && sousFamilleArticle != null) { InterfaceDB_Articles article = new InterfaceDB_Articles(); ResultatErreur = article.InsererArticle(refArticle, descriptionActicle, sousFamilleArticle.RefSousFamille, marqueArticle.RefMarque, prixArticle, quantiteArticle); TextBox_Affichage_ResultatEtErreurs.Invoke(new AjouterFinLigneResultatErreurs(ChangerResultat), ResultatErreur); } increment++; Travail_En_Arriere_Plan.ReportProgress(increment); } Reussi_ = 1; // Integration reussie }
/// <summary> /// Cette methode de se déconnecter à la base de données lors de la fermeture de l'application /// </summary> /// <param name="sender">object qui envoie l'action </param> /// <param name="e">Evenement envoyé </param> private void ApplicatioCentrale_FormClosing(object sender, FormClosingEventArgs e) { InterfaceDB.Deconnection(); }