Exemplo n.º 1
0
        void IMailbox.UpdateMovedMailbox(UpdateMovedMailboxOperation op, ADUser remoteRecipientData, string domainController, out ReportEntry[] entries, Guid newDatabaseGuid, Guid newArchiveDatabaseGuid, string archiveDomain, ArchiveStatusFlags archiveStatus, UpdateMovedMailboxFlags updateMovedMailboxFlags, Guid?newMailboxContainerGuid, CrossTenantObjectId newUnifiedMailboxId)
        {
            entries = null;
            MrsTracer.ProxyClient.Function("RemoteMailbox.UpdateMovedMailbox", new object[0]);
            this.VerifyMailboxConnection();
            string remoteRecipientData2 = ConfigurableObjectXML.Serialize <ADUser>(remoteRecipientData);
            string text = null;

            if (base.ServerVersion[46])
            {
                byte[] newUnifiedMailboxIdData = (newUnifiedMailboxId == null) ? null : newUnifiedMailboxId.GetBytes();
                base.MrsProxy.IMailbox_UpdateMovedMailbox4(base.Handle, op, remoteRecipientData2, domainController, out text, newDatabaseGuid, newArchiveDatabaseGuid, archiveDomain, (int)archiveStatus, (int)updateMovedMailboxFlags, newMailboxContainerGuid, newUnifiedMailboxIdData);
            }
            else if (base.ServerVersion[36])
            {
                base.MrsProxy.IMailbox_UpdateMovedMailbox3(base.Handle, op, remoteRecipientData2, domainController, out text, newDatabaseGuid, newArchiveDatabaseGuid, archiveDomain, (int)archiveStatus, (int)updateMovedMailboxFlags);
            }
            else if (base.ServerVersion[9])
            {
                base.MrsProxy.IMailbox_UpdateMovedMailbox2(base.Handle, op, remoteRecipientData2, domainController, out text, newDatabaseGuid, newArchiveDatabaseGuid, archiveDomain, (int)archiveStatus);
            }
            else
            {
                base.MrsProxy.IMailbox_UpdateMovedMailbox(base.Handle, op, remoteRecipientData2, domainController, out text);
            }
            if (text != null)
            {
                List <ReportEntry> list = XMLSerializableBase.Deserialize <List <ReportEntry> >(text, false);
                entries = ((list != null) ? list.ToArray() : null);
            }
        }
Exemplo n.º 2
0
 void IMailbox.UpdateMovedMailbox(UpdateMovedMailboxOperation op, ADUser remoteRecipientData, string domainController, out ReportEntry[] entries, Guid newDatabaseGuid, Guid newArchiveDatabaseGuid, string archiveDomain, ArchiveStatusFlags archiveStatus, UpdateMovedMailboxFlags updateMovedMailboxFlags, Guid?newMailboxContainerGuid, CrossTenantObjectId newUnifiedMailboxId)
 {
     ReportEntry[] entriesInt = null;
     base.CreateContext("IMailbox.UpdateMovedMailbox", new DataContext[0]).Execute(delegate
     {
         this.WrappedObject.UpdateMovedMailbox(op, remoteRecipientData, domainController, out entriesInt, newDatabaseGuid, newArchiveDatabaseGuid, archiveDomain, archiveStatus, updateMovedMailboxFlags, newMailboxContainerGuid, newUnifiedMailboxId);
     }, true);
     entries = entriesInt;
 }
Exemplo n.º 3
0
        protected override void UpdateMovedMailbox()
        {
            if (CommonUtils.IsImplicitSplit(base.CachedRequestJob.Flags, base.GetRootMailboxContext().SourceMailbox.GetADUser()))
            {
                throw new ImplicitSplitPermanentException();
            }
            ReportEntry[]         entries   = null;
            ADUser                adUser    = base.GetRootMailboxContext().DestMailbox.GetADUser();
            ConfigurableObjectXML configObj = ConfigurableObjectXML.Create(adUser);

            base.Report.Append(MrsStrings.ReportMailboxBeforeFinalization2(adUser.ToString(), adUser.OriginatingServer), configObj, ReportEntryFlags.Source | ReportEntryFlags.Before);
            try
            {
                MrsTracer.Service.Debug("Updating destination mailbox only (local move)...", new object[0]);
                UpdateMovedMailboxOperation op = base.CachedRequestJob.ArchiveOnly ? UpdateMovedMailboxOperation.UpdateArchiveOnly : UpdateMovedMailboxOperation.UpdateMailbox;
                Guid newArchiveDatabaseGuid;
                if (base.CachedRequestJob.ArchiveIsMoving)
                {
                    newArchiveDatabaseGuid = base.CachedRequestJob.TargetArchiveMDBGuid;
                }
                else
                {
                    newArchiveDatabaseGuid = ((adUser.ArchiveDatabase != null) ? adUser.ArchiveDatabase.ObjectGuid : Guid.Empty);
                }
                UpdateMovedMailboxFlags updateMovedMailboxFlags = UpdateMovedMailboxFlags.None;
                if (base.CachedRequestJob.SkipMailboxReleaseCheck)
                {
                    updateMovedMailboxFlags |= UpdateMovedMailboxFlags.SkipMailboxReleaseCheck;
                }
                if (base.CachedRequestJob.SkipProvisioningCheck)
                {
                    updateMovedMailboxFlags |= UpdateMovedMailboxFlags.SkipProvisioningCheck;
                }
                base.GetRootMailboxContext().DestMailbox.UpdateMovedMailbox(op, null, base.CachedRequestJob.DestDomainControllerToUpdate, out entries, base.CachedRequestJob.TargetMDBGuid, newArchiveDatabaseGuid, (adUser.ArchiveDomain != null) ? adUser.ArchiveDomain.ToString() : null, adUser.ArchiveStatus, updateMovedMailboxFlags, base.CachedRequestJob.TargetContainerGuid, base.CachedRequestJob.TargetUnifiedMailboxId);
            }
            finally
            {
                base.AppendReportEntries(entries);
            }
            CommonUtils.CatchKnownExceptions(delegate
            {
                adUser    = this.GetRootMailboxContext().DestMailbox.GetADUser();
                configObj = ConfigurableObjectXML.Create(adUser);
                this.Report.Append(MrsStrings.ReportMailboxAfterFinalization2(adUser.ToString(), adUser.OriginatingServer), configObj, ReportEntryFlags.Target | ReportEntryFlags.After);
            }, null);
        }
Exemplo n.º 4
0
 void IMailbox.UpdateMovedMailbox(UpdateMovedMailboxOperation op, ADUser remoteRecipientData, string domainController, out ReportEntry[] entries, Guid targetDatabaseGuid, Guid targetArchiveDatabaseGuid, string archiveDomain, ArchiveStatusFlags archiveStatus, UpdateMovedMailboxFlags updateMovedMailboxFlags, Guid?newMailboxContainerGuid, CrossTenantObjectId newUnifiedMailboxId)
 {
     throw new NotImplementedException();
 }