コード例 #1
0
        /// <summary>
        /// Méthode permettant de réaliser la modification d'un membre privé par le biais du set d'une propriété publique correspondant à un champ particulier de l'entité
        /// </summary>
        /// <typeparam name="T">Type de données du membre privé (et donc de cette propriété publique)</typeparam>
        /// <typeparam name="U">Type de données de la propriété publique exposant la valeur de ce membre privé</typeparam>
        /// <param name="ChampConcerne">Valeur enumérée représentant le champ géré par ce membre privé et cette propriété publique</param>
        /// <param name="MembrePrive">Membre privé à modifier</param>
        /// <param name="NouvelleValeur">Nouvelle valeur à attribuer à ce membre privé</param>
        /// <param name="TransformationMembreVersPropriete">Méthode optionelle permettant de réaliser la transformation d'une valeur type "membre privé" en une valeur type "propriété publique"</param>
        /// <returns>Vrai si la modification a été acceptée et réalisée, sinon faux</returns>
        protected bool ModifierChamp <T, U>(TChamp ChampConcerne, ref T MembrePrive, T NouvelleValeur, Func <T, U> TransformationMembreVersPropriete = null)
        {
            bool ModificationAcceptee = true;

            if (MethodeAttacheeA_AvantChangement)
            {
                AccumulateurErreur AccumulateurErreur = new AccumulateurErreur();
                if (TransformationMembreVersPropriete != null)
                {
                    Declencher_AvantChangement(this as TEntite, ChampConcerne, TransformationMembreVersPropriete(MembrePrive), TransformationMembreVersPropriete(NouvelleValeur), AccumulateurErreur);
                }
                else
                {
                    Declencher_AvantChangement(this as TEntite, ChampConcerne, MembrePrive, NouvelleValeur, AccumulateurErreur);
                }
                ModificationAcceptee = AccumulateurErreur.Accepte;
                if (!ModificationAcceptee)
                {
                    Declencher_SurErreur(this as TEntite, ChampConcerne, AccumulateurErreur.MessageErreur);
                }
            }
            if (ModificationAcceptee)
            {
                if (MethodeAttacheeA_ApresChangement)
                {
                    T ValeurPrecedente = MembrePrive;
                    MembrePrive = NouvelleValeur;
                    if (TransformationMembreVersPropriete != null)
                    {
                        Declencher_ApresChangement(this as TEntite, ChampConcerne, TransformationMembreVersPropriete(ValeurPrecedente), TransformationMembreVersPropriete(MembrePrive));
                    }
                    else
                    {
                        Declencher_ApresChangement(this as TEntite, ChampConcerne, ValeurPrecedente, MembrePrive);
                    }
                }
                else
                {
                    MembrePrive = NouvelleValeur;
                }
                ChampEstValide(ChampConcerne, true);
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #2
0
        private void SousFactionEnAjout_AvantChangement(SousFaction Entite, SousFaction.Champ Champ, object ValeurActuelle, object NouvelleValeur, AccumulateurErreur AccumulateurErreur)
        {
            switch (Champ)
            {
            case SousFaction.Champ.Name:
                SousFaction SousFactionExistant = Program.GMBD.EnumererSousFaction(null, null, new PDSGBD.MyDB.CodeSql("WHERE subfaction.sf_name = {0} AND subfaction.sf_fk_faction_id = {1}", textBoxSousFaction.Text, listeDeroulanteFaction1.FactionSelectionnee.Id), null).FirstOrDefault();

                if (SousFactionExistant != null)
                {
                    AccumulateurErreur.NotifierErreur("Cette sous faction existe déjà, veuillez en choisir une autre !");
                }
                break;
            }
        }
コード例 #3
0
 /// <summary>
 /// Méthode pouvant être attachée à l'événement AvantChangement
 /// </summary>
 /// <param name="Entite">Entité concernée par le changement</param>
 /// <param name="Champ">Champ concerné par le changement</param>
 /// <param name="ValeurActuelle">Valeur actuelle du champ concerné par le changement</param>
 /// <param name="NouvelleValeur">Nouvelle valeur à affecter au champ concerné par le changement</param>
 /// <param name="AccumulateurErreur">Accumulateur de notification d'erreur servant à refuser le changement</param>
 protected void Declencher_AvantChangement(TEntite Entite, TChamp Champ, object ValeurActuelle, object NouvelleValeur, AccumulateurErreur AccumulateurErreur)
 {
     if (AvantChangement != null)
     {
         AvantChangement(Entite, Champ, ValeurActuelle, NouvelleValeur, AccumulateurErreur);
     }
 }
コード例 #4
0
ファイル: PageScenario.cs プロジェクト: Irigana/EICE-Wargame
 private void Scenario_AvantChangement(Scenario Entite, Scenario.Champ Champ, object ValeurActuelle, object NouvelleValeur, AccumulateurErreur AccumulateurErreur)
 {
     switch (Champ)
     {
     case Scenario.Champ.Name:
     {
         Scenario ScenarioExiste = Program.GMBD.EnumererScenario(null, null, new MyDB.CodeSql("WHERE sc_name = {0}", textBox1.Text), null).FirstOrDefault();
         if (ScenarioExiste != null)
         {
             AccumulateurErreur.NotifierErreur("Ce nom de scénario existe déjà, veuillez en choisir une autre !");
         }
         break;
     }
     }
 }
コード例 #5
0
ファイル: PageScenario.cs プロジェクト: Irigana/EICE-Wargame
 private void PersonnageEnEdition_AvantChangement(CharactRank Entite, CharactRank.Champ Champ, object ValeurActuelle, object NouvelleValeur, AccumulateurErreur AccumulateurErreur)
 {
     switch (Champ)
     {
     case CharactRank.Champ.Cost:
     {
         if ((Entite.Cost > 10000) || (Entite.Cost < 0))
         {
             AccumulateurErreur.NotifierErreur("Ce coût n'est pas correct, veuillez en choisir une autre !");
         }
         break;
     }
     }
 }
コード例 #6
0
        private void StuffFeatureEnEdition_AvantChangement(StuffFeature Entite, StuffFeature.Champ Champ, object ValeurActuelle, object NouvelleValeur, AccumulateurErreur AccumulateurErreur)
        {
            switch (Champ)
            {
            case StuffFeature.Champ.Feature:
                m_StuffFeatureValide = false;

                /*
                 * // Modification
                 * if (z_listeDeroulanteFeature.FeatureSelectionnee == null)
                 * {
                 *  Feature FeatureExiste = Program.GMBD.EnumererFeature(null, null,
                 *                                                   new MyDB.CodeSql("WHERE stuff_feature.stf_fk_stuff_id = {0} AND stuff_feature.stf_fk_feature_id = {1}",
                 *                                                   z_ficheEquipement.EquipementSelectionne.Id, z_listeDeroulanteFeature.FeatureSelectionnee), null).FirstOrDefault();
                 *  if (FeatureExiste != null)
                 *  {
                 *      m_StuffFeatureValide = false;
                 *      AccumulateurErreur.NotifierErreur("Cet équipement dispose déjà de cette caractèristique, veuillez en choisir une autre !");
                 *  }
                 * }*/

                // Ajout
                if (z_listeDeroulanteFeature.FeatureSelectionnee != null)
                {
                    StuffFeature StuffFeatureExiste = Program.GMBD.EnumererStuffFeature(null, null,
                                                                                        new MyDB.CodeSql("WHERE stuff_feature.stf_fk_stuff_id = {0} AND stuff_feature.stf_fk_feature_id = {1}",
                                                                                                         z_ficheEquipement.EquipementSelectionne.Id, z_listeDeroulanteFeature.FeatureSelectionnee.Id), null).FirstOrDefault();
                    if (StuffFeatureExiste != null)
                    {
                        m_StuffFeatureValide          = false;
                        q_buttonAjouterCaract.Enabled = false;
                        AccumulateurErreur.NotifierErreur("Cet équipement dispose déjà de cette caractèristique, veuillez en choisir une autre !");
                        errorProvider1.SetError(z_listeDeroulanteFeature, "Cet équipement dispose déjà de cette caractèristique, veuillez en choisir une autre !");
                        //errorProviderErreurCaractere.SetError(listeDeroulanteFeature1, "Ce personnage dispose déjà de cette caractèristique, veuillez en choisir une autre !");
                    }
                }
                break;
            }
        }
コード例 #7
0
        private void StuffEnEdition_AvantChangement(Stuff Entite, Stuff.Champ Champ, object ValeurActuelle, object NouvelleValeur, AccumulateurErreur AccumulateurErreur)
        {
            //Réagir sur évenement leave (perte de focus)
            switch (Champ)
            {
            case Stuff.Champ.Name:
                Stuff StuffExistant = Program.GMBD.EnumererStuff(null, null, new PDSGBD.MyDB.CodeSql("WHERE st_name = {0}", z_textBoxNomEquipement.Text), null).FirstOrDefault();

                if (StuffExistant != null)
                {
                    AccumulateurErreur.NotifierErreur("Cet équipement existe déjà, veuillez en choisir un autre !");
                }
                break;
            }
        }
コード例 #8
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;
     }
     }
 }
コード例 #9
0
ファイル: PageSubUnity.cs プロジェクト: Irigana/EICE-Wargame
        /// <summary>
        /// Methode permettant de vérifier si la sous unité existe avant le changement de celle ci dans la base de données
        /// </summary>
        /// <param name="Entite"></param>
        /// <param name="Champ"></param>
        /// <param name="ValeurActuelle"></param>
        /// <param name="NouvelleValeur"></param>
        /// <param name="AccumulateurErreur"></param>
        private void SubUnityEnEdition_AvantChangement(SubUnity Entite, SubUnity.Champ Champ, object ValeurActuelle, object NouvelleValeur, AccumulateurErreur AccumulateurErreur)
        {
            switch (Champ)
            {
            case SubUnity.Champ.Name:
                // Si il est en modification
                if (ficheSubUnity1.SubUnitySelectionne != null)
                {
                    SubUnity SubUnityExiste = Program.GMBD.EnumererSubUnity(null,
                                                                            new MyDB.CodeSql(@" JOIN subfaction ON subunity.su_fk_subfaction_id = subfaction.sf_id"),
                                                                            new MyDB.CodeSql(@"WHERE subfaction.sf_fk_faction_id = {0} AND subfaction.sf_id = {1} AND su_name = {2} AND su_id <> {3} AND subunity.su_fk_unity_id = {4}",
                                                                                             listeDeroulanteFaction1.FactionSelectionnee.Id, listeDeroulanteSousFaction1.SousFactionSelectionnee.Id,
                                                                                             textBoxSousUnity.Text, ficheSubUnity1.SubUnitySelectionne.Id, listeDeroulanteUnity1.UnitySelectionnee.Id), null).FirstOrDefault();

                    if (SubUnityExiste != null)
                    {
                        AccumulateurErreur.NotifierErreur("Cette sous unité existe déjà pour cette faction et sous faction, veuillez en choisir une autre !");
                    }
                }
                // Si il est en ajout
                else if (ficheSubUnity1.SubUnitySelectionne == null)
                {
                    SubUnity SubUnityExiste = Program.GMBD.EnumererSubUnity(null,
                                                                            new MyDB.CodeSql(@" JOIN subfaction ON subunity.su_fk_subfaction_id = subfaction.sf_id"),
                                                                            new MyDB.CodeSql(@"WHERE subfaction.sf_fk_faction_id = {0} AND subfaction.sf_id = {1} AND su_name = {2} AND subunity.su_fk_unity_id = {3} ",
                                                                                             listeDeroulanteFaction1.FactionSelectionnee.Id, listeDeroulanteSousFaction1.SousFactionSelectionnee.Id,
                                                                                             textBoxSousUnity.Text, listeDeroulanteUnity1.UnitySelectionnee.Id), null).FirstOrDefault();

                    if (SubUnityExiste != null)
                    {
                        AccumulateurErreur.NotifierErreur("Cette sous unité existe déjà, veuillez en choisir une autre !");
                    }
                }
                break;
            }
        }
コード例 #10
0
ファイル: PageFaction.cs プロジェクト: Irigana/EICE-Wargame
        /// <summary>
        /// Methode permettant de vérifier si la faction existe avant le changement de celle ci dans la base de données
        /// </summary>
        /// <param name="Entite"></param>
        /// <param name="Champ"></param>
        /// <param name="ValeurActuelle"></param>
        /// <param name="NouvelleValeur"></param>
        /// <param name="AccumulateurErreur"></param>
        private void FactionEnEdition_AvantChangement(Faction Entite, Faction.Champ Champ, object ValeurActuelle, object NouvelleValeur, AccumulateurErreur AccumulateurErreur)
        {
            switch (Champ)
            {
            case Faction.Champ.Name:
                Faction FactionExistante = Program.GMBD.EnumererFaction(null, null, new PDSGBD.MyDB.CodeSql("WHERE faction.fa_name = {0} AND faction.fa_id <> {1}", textBoxFaction.Text, ficheFaction1.FactionSelectionne.Id), null).FirstOrDefault();

                if (FactionExistante != null)
                {
                    AccumulateurErreur.NotifierErreur("Cette faction existe déjà, veuillez en choisir une autre !");
                }
                break;
            }
        }