예제 #1
0
        private void RajouterNouvelleSpecificite(int NumeroDuCamp)
        {
            Condi_Camp NouvelleSpecificite = new Condi_Camp();

            NouvelleSpecificite.SurErreur       += Specificite_SurErreur;
            NouvelleSpecificite.AvantChangement += Specificite_AvantChangement;
            NouvelleSpecificite.Unity            = listeDeroulanteUnity1.UnitySelectionnee;
            NouvelleSpecificite.Scenario_Camp    = Program.GMBD.EnumererScenarioCamp(null, new MyDB.CodeSql(@"JOIN scenario ON scenario.sc_id = scenario_camp.sca_fk_scenario_id 
                                                                                                            JOIN camp ON camp.ca_id = scenario_camp.sca_fk_camp_id "),
                                                                                     new MyDB.CodeSql("WHERE scenario.sc_id = {0} AND camp.ca_id = {1}", Scenario.Scenario.Id, NumeroDuCamp), null).FirstOrDefault();
            NouvelleSpecificite.Min = Convert.ToInt32(numericUpDownObligatoire.Value);
            NouvelleSpecificite.Max = Convert.ToInt32(numericUpDown2.Value);
            Condi_Camp SpecificiteExiste = Program.GMBD.EnumererCondiCamp(null, null, new MyDB.CodeSql("WHERE cc_fk_scenario_camp_id = {0} AND cc_fk_unity_id = {1}", NouvelleSpecificite.Scenario_Camp.Id, NouvelleSpecificite.Unity.Id), null).FirstOrDefault();

            if (SpecificiteExiste == null)
            {
                if (NouvelleSpecificite.EstValide && Program.GMBD.AjouterSpecificite(NouvelleSpecificite))
                {
                    ChargerSpecificite(NumeroDuCamp);
                    ValidationProvider.SetError(ficheSpecifiteScenario1, "Spécificité correctement rajoutée");
                }
            }
            else
            {
                errorProvider1.SetError(listeDeroulanteUnity1, "Cette spécificté existe déjà pour ce camp");
            }
        }
예제 #2
0
 public bool SupprimerSpecificite(Condi_Camp SpecificiteCondiCamp)
 {
     if (!m_BD.EstConnecte)
     {
         Initialiser();
     }
     SpecificiteCondiCamp.SupprimerEnCascade(m_BD);
     return(true);
 }
예제 #3
0
 private void Specificite_AvantChangement(Condi_Camp Specificite, Condi_Camp.Champ Champ, object ValeurActuelle, object NouvelleValeur, AccumulateurErreur AccumulateurErreur)
 {
     switch (Champ)
     {
     case Condi_Camp.Champ.Unity:
     {
         Condi_Camp SpecificiteExiste = Program.GMBD.EnumererCondiCamp(null, null,
                                                                       new MyDB.CodeSql("WHERE cc_fk_scenario_camp_id = {0} AND cc_fk_unity_id = {1}", Scenario.Id, listeDeroulanteUnity1.UnitySelectionnee.Id), null).FirstOrDefault();
         if (SpecificiteExiste != null)
         {
             ValidationProvider.Clear();
             AccumulateurErreur.NotifierErreur("Cette spécificité existe déjà, veuillez en choisir une autre ou modifier l'existante !");
         }
         break;
     }
     }
 }
예제 #4
0
        private void Specificite_SurErreur(Condi_Camp Entite, Condi_Camp.Champ Champ, string MessageErreur)
        {
            switch (Champ)
            {
            case Condi_Camp.Champ.Min:
                errorProvider1.SetError(numericUpDownObligatoire, MessageErreur);
                break;

            case Condi_Camp.Champ.Max:
                errorProvider1.SetError(numericUpDown2, MessageErreur);
                break;

            case Condi_Camp.Champ.Unity:
                errorProvider1.SetError(listeDeroulanteUnity1, MessageErreur);
                break;
            }
            buttonAjouter.Enabled = false;
        }
예제 #5
0
 public IEnumerable <Condi_Camp> EnumererCondiCamp(MyDB.CodeSql ValeurSouhaitee, MyDB.CodeSql ClauseJoin, MyDB.CodeSql ClauseWhere, MyDB.CodeSql ClauseOrderBy)
 {
     if (ClauseWhere == null)
     {
         ClauseWhere = MyDB.CodeSql.Vide;
     }
     if (ClauseOrderBy == null)
     {
         ClauseOrderBy = MyDB.CodeSql.Vide;
     }
     if (ClauseJoin == null)
     {
         ClauseJoin = MyDB.CodeSql.Vide;
     }
     if (ValeurSouhaitee == null)
     {
         ValeurSouhaitee = new MyDB.CodeSql("*");
     }
     return(Condi_Camp.Enumerer(m_BD, m_BD.Enumerer("SELECT {0} FROM  {1} {2} {3} {4}", ValeurSouhaitee, c_NomTable_CondiCamp, ClauseJoin, ClauseWhere, ClauseOrderBy)));
 }
예제 #6
0
 private IEnumerable <Condi_Camp> EnumererCondiCamp()
 {
     return(Condi_Camp.Enumerer(Connexion, Connexion.Enumerer(@"SELECT * FROM  condi_camp
                                                                JOIN scenario_camp ON condi_camp.cc_fk_scenario_camp_id = scenario_camp.sca_id                                                                                                                                                 
                                                             WHERE cc_fk_scenario_camp_id = {0} AND scenario_camp.sca_fk_camp_id = {1}", Scenario.Id, Camp.Id)));
 }
        /// <summary>
        /// Met à jour la listview des sous Features et y insére les elements
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="Entites"></param>
        /// <returns></returns>
        private bool MettreAJourListe <T>(IEnumerable <T> Entites)
            where T : class, IEntiteMySQL
        {
            bool EstSpecifiteScenario = typeof(T).Equals(typeof(Condi_Camp));

            if (!EstSpecifiteScenario)
            {
                return(false);
            }
            listViewSpecificite.Items.Clear();
            if (Entites == null)
            {
                return(false);
            }
            if (EstSpecifiteScenario && (listViewSpecificite.Columns.Count != 2))
            {
                listViewSpecificite.Columns.Clear();


                listViewSpecificite.Columns.Add(new ColumnHeader()
                {
                    Name      = "NomUnity",
                    Text      = "Nom de l'unité",
                    TextAlign = HorizontalAlignment.Center,
                });

                listViewSpecificite.Columns.Add(new ColumnHeader()
                {
                    Name      = "Min",
                    Text      = "Min",
                    TextAlign = HorizontalAlignment.Center,
                });
                listViewSpecificite.Columns.Add(new ColumnHeader()
                {
                    Name      = "Max",
                    Text      = "Max supplémentaires",
                    TextAlign = HorizontalAlignment.Center,
                });
            }

            foreach (T Entite in Entites)
            {
                Condi_Camp SpecificiteScenario = Entite as Condi_Camp;

                if (EstSpecifiteScenario)
                {
                    ListViewItem NouvelElement = new ListViewItem()
                    {
                        Tag  = Entite,
                        Text = SpecificiteScenario.Unity.Name,
                    };
                    NouvelElement.SubItems.Add(SpecificiteScenario.Min.ToString());
                    NouvelElement.SubItems.Add(SpecificiteScenario.Max.ToString());
                    listViewSpecificite.Items.Add(NouvelElement);
                }
            }

            listViewSpecificite.Visible = false;
            foreach (ColumnHeader Colonne in listViewSpecificite.Columns)
            {
                Colonne.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize);
            }

            listViewSpecificite.Visible = true;
            listViewCaractere_SelectedIndexChanged(listViewSpecificite, EventArgs.Empty);
            return(true);
        }
예제 #8
0
 public bool AjouterSpecificite(Condi_Camp NouvelleSpecificite)
 {
     return(NouvelleSpecificite.Enregistrer(m_BD, NouvelleSpecificite, null, false));
 }
예제 #9
0
        private void buttonSupprimer_Click(object sender, EventArgs e)
        {
            PopUpConfirmation FormConfirmation = new PopUpConfirmation();

            Army ScenarioLie = Program.GMBD.EnumererArmy(null, null, new MyDB.CodeSql("WHERE ar_fk_scenario_camp_id = {0}", listeDeroulanteScenario1.ScenarioSelectionnee.Id), null).FirstOrDefault();

            if (ScenarioLie == null)
            {
                FormConfirmation.LabelDuTexte = "Êtes vous certain de vouloir supprimer cet enregistrement ?";

                FormConfirmation.ShowDialog();
                // S'il accepte
                if (FormConfirmation.Confirmation)
                {
                    Condi_Camp Camp1 = null;
                    Condi_Camp Camp2 = null;

                    if (m_ScenarioCampUn != null)
                    {
                        Camp1 = Program.GMBD.EnumererCondiCamp(null, new MyDB.CodeSql("JOIN scenario_camp ON cc_fk_scenario_camp_id = sca_id"), new MyDB.CodeSql("WHERE sca_fk_camp_id = {0} AND sca_id = {1}", m_ScenarioCampUn.Camp.Id, m_ScenarioCampUn.Id), null).FirstOrDefault();
                        if (Camp1 != null)
                        {
                            Program.GMBD.SupprimerSpecificite(Camp1);
                        }
                    }
                    if (m_ScenarioSecondCamp != null)
                    {
                        Camp2 = Program.GMBD.EnumererCondiCamp(null, new MyDB.CodeSql("JOIN scenario_camp ON cc_fk_scenario_camp_id = sca_id"), new MyDB.CodeSql("WHERE sca_fk_camp_id = {0} AND sca_id = {1}", m_ScenarioSecondCamp.Camp.Id, m_ScenarioSecondCamp.Id), null).FirstOrDefault();
                        if (Camp2 != null)
                        {
                            Program.GMBD.SupprimerSpecificite(Camp2);
                        }
                    }

                    if ((listeDeroulanteScenario1.ScenarioSelectionnee != null) && Program.GMBD.SupprimerScenarioCamp(m_ScenarioCampUn))
                    {
                        if (m_ScenarioSecondCamp != null)
                        {
                            Program.GMBD.SupprimerScenarioCamp(m_ScenarioSecondCamp);
                        }
                        Program.GMBD.SupprimerScenario(m_ScenarioCampUn.Scenario);
                        listeDeroulanteScenario1.Scenario = Program.GMBD.EnumererScenario(null, null, null, null);
                        buttonAjouter.Enabled             = true;
                        buttonAnnuler.Enabled             = false;
                        buttonSupprimer.Enabled           = false;
                        ficheScenarioCamp1.Enabled        = false;
                        ficheScenarioCamp2.Enabled        = false;
                        errorProviderValidation.SetError(textBox1, "Suppression correctement effectuée");
                        textBox1.Text = "";
                        listeDeroulanteScenario1.ClearText();
                        ficheScenarioCamp1.ClearFiche();
                        ficheScenarioCamp2.ClearFiche();
                    }
                }
                // S'il refuse
                else if (FormConfirmation.Annulation)
                {
                    // ne rien faire
                }
            }
            else
            {
                errorProvider.SetError(textBox1, "Ce scénario est utilisée par armée, veuillez la supprimer avant de supprimer ce scénario");
            }
        }