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