示例#1
0
        //-------------------------------------------------------------------
        public override CResultAErreur VerifieDonnees(CObjetDonnee objet)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                CTypeContrainte type_cont = (CTypeContrainte)objet;

                // Verifie le champ "Libelle"
                if (type_cont.Libelle == "")
                {
                    result.EmpileErreur(I.T("Constraint Type label cannot be empty|10003"));
                }

                // Le champ "Libelle" doit être unique dans son parent seulement.
                if (type_cont.TypeContrainteParent != null)
                {
                    // Liste des sites frères lst
                    CListeObjetsDonnees lst = type_cont.TypeContrainteParent.TypesContraintesFils;

                    lst.Filtre = new CFiltreData(CTypeContrainte.c_champLibelle + " = @1 AND " + CTypeContrainte.c_champId + " <> @2", type_cont.Libelle, type_cont.Id);
                    if (lst.Count != 0)
                    {
                        result.EmpileErreur(I.T("The Constraint type '@1' already exists|239", type_cont.Libelle));
                    }
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }

            return(result);
        }
示例#2
0
        //-------------------------------------------------------------------
        public override CResultAErreur TraitementAvantSauvegarde(CContexteDonnee contexte)
        {
            CResultAErreur result = CResultAErreur.True;

            result = base.TraitementAvantSauvegarde(contexte);
            if (!result)
            {
                return(result);
            }

            // Interdit le changement de type de contrainte s'il y a des clés associées
            DataTable table = contexte.Tables[GetNomTable()];
            ArrayList lst   = new ArrayList(table.Rows);

            foreach (DataRow row in lst)
            {
                if (row.RowState == DataRowState.Modified)
                {
                    CContrainte contrainte = new CContrainte(row);
                    // Sauvegarde de la version du DataRow
                    DataRowVersion oldVer = contrainte.VersionToReturn;
                    // Type de contrainte après modif
                    CTypeContrainte modifTypeCont = contrainte.TypeContrainte;

                    // Changement de version
                    contrainte.VersionToReturn = DataRowVersion.Original;
                    // Type de contrainte avant modif
                    CTypeContrainte originTypeCont = contrainte.TypeContrainte;
                    // Retour à la version du DataRow
                    contrainte.VersionToReturn = oldVer;

                    if (modifTypeCont != originTypeCont && contrainte.RelationRessourceListe.Count != 0)
                    {
                        result.EmpileErreur(I.T(
                                                "The Constraint Type cannot be modified when there are resources are associated with it|128"));
                    }
                }
            }
            return(result);
        }
示例#3
0
        public void AddRelation(CListeObjetsDonnees listeObjets, CTypeRessource newTypeRessource, CTypeContrainte newTypeContainte)
        {
            if (listeObjets == null || newTypeRessource == null || newTypeContainte == null)
            {
                return;
            }


            // Vérifie que la ralation n'es pas déjà créée
            listeObjets.Filtre = new CFiltreData(CTypeRessource.c_champId + " = @1 AND " + CTypeContrainte.c_champId + " = @2 ",
                                                 newTypeRessource.Id, newTypeContainte.Id);

            if (listeObjets.Count != 0)
            {
                CFormAlerte.Afficher(I.T("This Relation is already added|286"), EFormAlerteType.Erreur);
                return;
            }

            //Créer une nouvelle relation
            CRelationTypeContrainte_TypeRessource rel = new CRelationTypeContrainte_TypeRessource(listeObjets.ContexteDonnee);

            rel.CreateNewInCurrentContexte();
            rel.TypeContrainte = newTypeContainte;
            rel.TypeRessource  = newTypeRessource;

            ListViewItem item = new ListViewItem();

            m_listeRelations.Items.Add(item);
            m_listeRelations.UpdateItemWithObject(item, rel);
        }