/// <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); } }
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; } }
/// <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); } }
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; } } }
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; } } }
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; } }
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; } }
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; } } }
/// <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; } }
/// <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; } }