void IMailbox.SetInTransitStatus(InTransitStatus status, out bool onlineMoveSupported) { MrsTracer.ProxyClient.Function("RemoteMailbox.SetInTransitStatus({0})", new object[] { status }); this.VerifyMailboxConnection(); base.MrsProxy.IMailbox_SetInTransitStatus(base.Handle, (int)status, out onlineMoveSupported); }
protected override void SetSourceInTransitStatus(MailboxCopierBase mbxCtx, InTransitStatus status, out bool sourceSupportsOnlineMove) { mbxCtx.SourceMailbox.SetInTransitStatus(status | InTransitStatus.ForPublicFolderMove, out sourceSupportsOnlineMove); if (!sourceSupportsOnlineMove) { MrsTracer.Service.Debug("Source does not support online move for aux folder move job.", new object[0]); throw new OnlineMoveNotSupportedPermanentException(base.CachedRequestJob.SourceExchangeGuid.ToString()); } }
void IMailbox.SetInTransitStatus(InTransitStatus status, out bool onlineMoveSupported) { bool onlineMoveSupportedInt = false; base.CreateContext("IMailbox.SetInTransitStatus", new DataContext[] { new SimpleValueDataContext("Status", status) }).Execute(delegate { this.WrappedObject.SetInTransitStatus(status, out onlineMoveSupportedInt); }, true); onlineMoveSupported = onlineMoveSupportedInt; }
void IMailbox.SetInTransitStatus(InTransitStatus status, out bool onlineMoveSupported) { MrsTracer.Provider.Function("StorageMailbox.SetInTransitStatus({0})", new object[] { status }); base.VerifyMailboxConnection(VerifyMailboxConnectionFlags.None); onlineMoveSupported = true; if (this.InTransitStatus == status) { return; } using (base.RHTracker.Start()) { this.StoreSession.Mailbox.SetProperties(this.ConvertPropTagsToDefinitions(new PropTag[] { PropTag.InTransitStatus }), new object[] { status }); try { this.StoreSession.Mailbox.Save(); } catch (FolderSaveException ex) { if (status != InTransitStatus.NotInTransit) { PropertyErrorException ex2 = ex.InnerException as PropertyErrorException; if (ex2 != null && ex2.PropertyErrors.Length == 1 && ex2.PropertyErrors[0].PropertyErrorCode == PropertyErrorCode.AccessDenied) { throw this.GetMailboxInTransitException(ex); } } throw; } this.StoreSession.Mailbox.Load(); } this.InTransitStatus = status; if (status.HasFlag(InTransitStatus.SyncDestination)) { this.StoreSession.MailboxMoveStage = MailboxMoveStage.OnlineMoveDestination; return; } this.StoreSession.MailboxMoveStage = MailboxMoveStage.None; }
protected override void SetDestinationInTransitStatus(MailboxCopierBase mbxCtx) { InTransitStatus inTransitStatus = InTransitStatus.MoveDestination | InTransitStatus.OnlineMove | InTransitStatus.ForPublicFolderMove; if (base.CachedRequestJob.AllowLargeItems) { inTransitStatus |= InTransitStatus.AllowLargeItems; } bool flag; mbxCtx.DestMailbox.SetInTransitStatus(inTransitStatus, out flag); if (!flag) { MrsTracer.Service.Debug("Destination does not support online move for public folder move job.", new object[0]); throw new OnlineMoveNotSupportedPermanentException(base.CachedRequestJob.TargetExchangeGuid.ToString()); } }
void IMailbox.SetInTransitStatus(InTransitStatus status, out bool onlineMoveSupported) { throw new NotImplementedException(); }