コード例 #1
0
        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();
                    }
                }
            }
        }
コード例 #2
0
 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);
 }
コード例 #3
0
        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);
            }
        }