private void ValiderExigence_Click(object sender, RoutedEventArgs e) { if (Title.Text == null || Title.Text == "") { MessageBox.Show("Vous devez donner un nom à l'exigence", "Nom invalide", MessageBoxButton.OK, MessageBoxImage.Exclamation); } else { if (Title.Text == "Menu") { MessageBox.Show("Vous ne pouvez pas appeler une exigence ainsi", "Error", MessageBoxButton.OK, MessageBoxImage.Exclamation); } else { if (Vue.ExigenceSelectionnee == null || Vue.ExigenceSelectionnee.Name == "Menu") { try { CreateTable(Title.Text); Exigence ExigenceParent = new Exigence(Title.Text, Content.Text, 0, dashb.NormeSelectionnee.Id, dashb.ProjetEnCours.Id); Vue.ROOT_Exigences.ExigenceObervCollec.Add(ExigenceParent); mw.database.ExigenceDatabase.Add(ExigenceParent); mw.database.SaveChanges(); Close(); } catch (System.Data.SqlClient.SqlException) { MessageBox.Show("Une Exigence à ce nom existe déjà ou le nom est trop long", "error", MessageBoxButton.OK, MessageBoxImage.Error); } } else { try { CreateTable(Title.Text); try { RemplirTable(Vue.ExigenceSelectionnee.Name, Vue.ExigenceSelectionnee.Id); Exigence ExigenceEnfant = new Exigence(Title.Text, Content.Text, Vue.ExigenceSelectionnee.Id, dashb.NormeSelectionnee.Id, dashb.ProjetEnCours.Id); Vue.ExigenceSelectionnee.ExigenceObervCollec.Add(ExigenceEnfant); mw.database.ExigenceDatabase.Add(ExigenceEnfant); } catch (Exception) { SupprimerTable(Title.Text); MessageBox.Show("Impossible de remplir dans table parent", "error", MessageBoxButton.OK, MessageBoxImage.Error); } Close(); } catch (System.Data.SqlClient.SqlException) { MessageBox.Show("Une Exigence à ce nom existe déjà", "error", MessageBoxButton.OK, MessageBoxImage.Error); } mw.database.SaveChanges(); } } } }
public Vue_Exigence(Dashboard D) { InitializeComponent(); dash = D; dash.Vue = this; ROOT_Exigences = new Exigence() { Name = "Menu" }; //modifier le nom entraine un changement dans plusieurs classes treeviewFrame.Items.Add(ROOT_Exigences); }
private void Btn_supr_MouseUp(object sender, MouseButtonEventArgs e) { if (dash.Vue.ExigenceSelectionnee != null && dash.Vue.ExigenceSelectionnee.Name != "Menu") { if (MessageBox.Show("Voulez-vous supprimer " + dash.Vue.ExigenceSelectionnee.Name, "Suppression de l'exigence", MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.Yes) == MessageBoxResult.Yes) { string CurrentItem = dash.TableFormater(dash.SimpleQuoteFormater(dash.FormaterToSQLRequest(dash.Vue.ExigenceSelectionnee.Name))); Exigence Ntmp = dash.Vue.ExigenceSelectionnee; if (MessageBox.Show("Voulez - vous supprimer tous les documents associés à " + dash.Vue.ExigenceSelectionnee.Name + " ? ", "Suppression des documents", MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.Yes) == MessageBoxResult.Yes) { dash.SuprDoc = true; using (ApplicationDatabase context = new ApplicationDatabase()) { //supprime son document associé var docASupr = context.Database.SqlQuery <string>("SELECT DocumentPath from Exigences WHERE Id = " + Ntmp.Id).FirstOrDefault(); if (docASupr != null) { File.Delete(docASupr); } //supprime des documents enfant // TODO } } // Supprime de la DbSet, à mettre en 1er dash.mw.database.ExigenceDatabase.Remove(Ntmp); dash.mw.database.SaveChanges(); using (ApplicationDatabase context = new ApplicationDatabase()) { //Quand suppression d'un parent => supprimer la table nominative des enfants dash.SuppressionTabEntant(CurrentItem); //supprime de la table parent var ParentName = context.Database.SqlQuery <string>("SELECT Name from Exigences WHERE Id= " + Ntmp.ForeignKey).FirstOrDefault(); var ListeEnfant = context.Database.SqlQuery <string>("SELECT * FROM " + Ntmp); if (ParentName != "Menu" && ParentName != null) { ParentName = dash.TableFormater(dash.FormaterToSQLRequest(ParentName)); var zz = context.Database.ExecuteSqlCommand("DELETE FROM " + ParentName + " WHERE Titre = '" + dash.SimpleQuoteFormater(Ntmp.Name) + "'"); } // supprime la table à son nom var x = context.Database.ExecuteSqlCommand("DROP TABLE " + CurrentItem); } // remove tous ses enfants de la collection Observable Ntmp.ExigenceObervCollec.Clear(); // remove de la liste général dans le treeview dash.Vue.ROOT_Exigences.ExigenceObervCollec.Remove(Ntmp); } } else { MessageBox.Show("Selectionner une ligne", "error", MessageBoxButton.OK, MessageBoxImage.Information); } }