// Token: 0x06000326 RID: 806 RVA: 0x00011034 File Offset: 0x0000F234
        private static bool ValidateDomainName(AcceptedDomain domain, IConfigurationSession session, Exception duplicateAcceptedDomainException, Exception conflictingAcceptedDomainException, out Exception error)
        {
            error = null;
            string      domain2 = domain.DomainName.Domain;
            QueryFilter filter  = new AndFilter(new QueryFilter[]
            {
                new ComparisonFilter(ComparisonOperator.NotEqual, ADObjectSchema.Guid, domain.Guid),
                new OrFilter(new QueryFilter[]
                {
                    new ComparisonFilter(ComparisonOperator.Equal, AcceptedDomainSchema.DomainName, domain2),
                    new ComparisonFilter(ComparisonOperator.Equal, AcceptedDomainSchema.DomainName, "*." + domain2)
                })
            });

            AcceptedDomain[] array = session.Find <AcceptedDomain>(null, QueryScope.SubTree, filter, null, 1);
            if (array.Length != 0)
            {
                error = duplicateAcceptedDomainException;
                return(false);
            }
            List <QueryFilter> list    = new List <QueryFilter>(AcceptedDomain.ConflictingDomainFilters(domain, false));
            QueryFilter        filter2 = new OrFilter(list.ToArray());

            foreach (AcceptedDomain acceptedDomain in session.FindPaged <AcceptedDomain>(null, QueryScope.SubTree, filter2, null, 0))
            {
                if (!ADObjectId.Equals(domain.Id.Parent, acceptedDomain.Id.Parent))
                {
                    error = conflictingAcceptedDomainException;
                    return(false);
                }
            }
            return(true);
        }
Beispiel #2
0
            private static IEnumerable <AcceptedDomain> FindConflictingDomains(IConfigurationSession session, AcceptedDomain oldDomain, AcceptedDomain newDomain)
            {
                List <QueryFilter> filters = new List <QueryFilter>();

                filters.AddRange(AcceptedDomain.ConflictingDomainFilters(oldDomain, false));
                filters.AddRange(AcceptedDomain.ConflictingDomainFilters(newDomain, false));
                QueryFilter filter = new OrFilter(filters.ToArray());
                ADPagedReader <AcceptedDomain> results = session.FindPaged <AcceptedDomain>(null, QueryScope.SubTree, filter, null, 0);

                foreach (AcceptedDomain result in results)
                {
                    yield return(result);
                }
                yield return(newDomain);

                yield break;
            }