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