public static IEnumerable <string> GetMigrationMailboxLegacyDN(TenantPartitionHint tenantPartitionHint, string localServer, QueryFilter optionalFilter = null) { IRecipientSession recipientSession = MigrationHelperBase.CreateRecipientSession(tenantPartitionHint); string connectionInformation = string.Format("Accessing migration mailboxes for organization: {0}", tenantPartitionHint); List <QueryFilter> filters = new List <QueryFilter>(3); filters.Add(OrganizationMailbox.OrganizationMailboxFilterBase); filters.Add(new ComparisonFilter(ComparisonOperator.Equal, ADRecipientSchema.RawCapabilities, OrganizationCapability.Migration)); if (optionalFilter != null) { filters.Add(optionalFilter); } IEnumerable <ADUser> users = MigrationHelperBase.GetRecipients <ADUser>(recipientSession, QueryFilter.AndTogether(filters.ToArray()), (string msg) => MigrationHelperBase.CreatePermanentExceptionWithInternalData <MigrationMailboxNotFoundException>(connectionInformation), (string msg) => MigrationHelperBase.CreatePermanentExceptionWithInternalData <MigrationMailboxNotFoundException>(connectionInformation), connectionInformation); foreach (ADUser user in users) { string serverName = null; if (user.Database != null) { serverName = MigrationHelperBase.GetServerFqdn(user.Database.ObjectGuid); } if (string.Equals(serverName, localServer, StringComparison.OrdinalIgnoreCase)) { yield return(user.LegacyExchangeDN); } } yield break; }
public static void GetManagementMailboxData(TenantPartitionHint tenantPartitionHint, out string mailboxLegacyDN, out string serverName) { IRecipientSession session = MigrationHelperBase.CreateRecipientSession(tenantPartitionHint); string connectionInformation = string.Format("Accessing management mailbox for organization: {0}", tenantPartitionHint); ADUser recipient = MigrationHelperBase.GetRecipient <ADUser>(session, MigrationHelperBase.ManagementMailboxFilter, (string msg) => MigrationHelperBase.CreatePermanentExceptionWithInternalData <MigrationMailboxNotFoundException>(connectionInformation), (string msg) => MigrationHelperBase.CreatePermanentExceptionWithInternalData <MultipleMigrationMailboxesFoundException>(connectionInformation), (string msg) => MigrationHelperBase.CreatePermanentExceptionWithInternalData <MigrationMailboxNotFoundException>(connectionInformation), connectionInformation); serverName = null; if (recipient.Database != null) { serverName = MigrationHelperBase.GetServerFqdn(recipient.Database.ObjectGuid); } mailboxLegacyDN = recipient.LegacyExchangeDN; if (serverName == null) { throw MigrationHelperBase.CreatePermanentExceptionWithInternalData <MigrationMailboxNotFoundException>(connectionInformation); } }