Пример #1
0
        protected bool CreateOrUpdateRelations(CGroupeActeur groupe, CAdGroup adGroupe, Hashtable tableElementsASupprimer, Hashtable tableEmpecheRecursInf)
        {
            if (tableEmpecheRecursInf[adGroupe.Id] != null)
            {
                return(false);
            }
            tableEmpecheRecursInf[adGroupe.Id] = true;
            //Trouve le groupe correspondant au groupe AD
            CGroupeActeur groupeCorrespondant = CGroupeActeur.FromAd(groupe.ContexteDonnee, adGroupe.Id);

            if (groupeCorrespondant == null)
            {
                foreach (CAdGroup adParent in adGroupe.GroupesParents)
                {
                    if (CreateOrUpdateRelations(groupe, adParent, tableElementsASupprimer, tableEmpecheRecursInf))
                    {
                        return(true);
                    }
                }
            }
            else
            {
                //Le groupe correspondant existe. Existe-t-il la relation ?
                CListeObjetsDonnees liste = groupe.RelationsGroupesContenantsDirects;
                liste.Filtre = new CFiltreData(CRelationGroupeActeur_GroupeActeur.c_champIdGroupeContenant + "=@1", groupeCorrespondant.Id);
                if (liste.Count == 1)
                {
                    CRelationGroupeActeur_GroupeActeur rel = (CRelationGroupeActeur_GroupeActeur)liste[0];
                    tableElementsASupprimer.Remove(rel);                    //On ne supprime pas
                }
                else
                {
                    //Crée la relation
                    CRelationGroupeActeur_GroupeActeur rel = new CRelationGroupeActeur_GroupeActeur(groupe.ContexteDonnee);
                    rel.CreateNewInCurrentContexte();
                    rel.GroupeContenant = groupeCorrespondant;
                    rel.GroupeContenu   = groupe;
                }
                return(true);
            }
            return(false);
        }
Пример #2
0
        /// ////////////////////////////////////////////////////////////
        public override CResultAErreur VerifieDonnees(CObjetDonnee objet)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                CRelationGroupeActeur_GroupeActeur relation = (CRelationGroupeActeur_GroupeActeur)objet;
                if (relation.GroupeContenant == null)
                {
                    result.EmpileErreur(I.T("The containing group must be defined|277"));
                }
                if (relation.GroupeContenu == null)
                {
                    result.EmpileErreur(I.T("The included group must be defined|278"));
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            return(result);
        }