示例#1
0
        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;
        }
示例#2
0
        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);
            }
        }