private static ADUser[] InternalFindMultiTenant(OrganizationCapability capability, ADObjectId databaseId)
        {
            QueryFilter additionalfilter = null;

            if (databaseId != null)
            {
                additionalfilter = new ComparisonFilter(ComparisonOperator.Equal, ADMailboxRecipientSchema.Database, databaseId);
            }
            else
            {
                additionalfilter = OrganizationMailbox.GetOrganizationMailboxQueryFilterForLocalServer();
            }
            Dictionary <OrganizationId, ADUser> orgMailboxesDictionary = new Dictionary <OrganizationId, ADUser>();

            PartitionDataAggregator.RunOperationOnAllAccountPartitions(true, delegate(IRecipientSession recipientSession)
            {
                List <ADUser> organizationMailboxesByCapability = OrganizationMailbox.GetOrganizationMailboxesByCapability(recipientSession, capability, additionalfilter);
                foreach (ADUser aduser in organizationMailboxesByCapability)
                {
                    ADUser user = null;
                    if (orgMailboxesDictionary.TryGetValue(aduser.OrganizationId, out user))
                    {
                        if (OrganizationMailbox.UserComparer(user, aduser) > 0)
                        {
                            orgMailboxesDictionary[aduser.OrganizationId] = aduser;
                        }
                    }
                    else
                    {
                        orgMailboxesDictionary[aduser.OrganizationId] = aduser;
                    }
                }
            });
            ADUser[] array = new ADUser[orgMailboxesDictionary.Count];
            if (orgMailboxesDictionary.Count > 0)
            {
                orgMailboxesDictionary.Values.CopyTo(array, 0);
            }
            return(array);
        }
        private static ADUser[] InternalFindEnterprise(OrganizationCapability capability, ADObjectId databaseId)
        {
            ADSessionSettings sessionSettings         = ADSessionSettings.FromRootOrgScopeSet();
            IRootOrganizationRecipientSession session = DirectorySessionFactory.Default.CreateRootOrgRecipientSession(null, null, LcidMapper.DefaultLcid, true, ConsistencyMode.IgnoreInvalid, null, sessionSettings, 558, "InternalFindEnterprise", "f:\\15.00.1497\\sources\\dev\\data\\src\\storage\\OrganizationMailbox\\OrganizationMailbox.cs");
            QueryFilter optionalFilter;

            if (databaseId != null)
            {
                optionalFilter = new ComparisonFilter(ComparisonOperator.Equal, ADMailboxRecipientSchema.Database, databaseId);
            }
            else
            {
                optionalFilter = OrganizationMailbox.GetOrganizationMailboxQueryFilterForLocalServer();
            }
            List <ADUser> organizationMailboxesByCapability = OrganizationMailbox.GetOrganizationMailboxesByCapability(session, capability, optionalFilter);
            List <ADUser> list = new List <ADUser>(1);

            if (organizationMailboxesByCapability.Count >= 1)
            {
                list.Add(organizationMailboxesByCapability[0]);
            }
            return(list.ToArray());
        }