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;
        }
Beispiel #4
0
 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());
            }
        }
Beispiel #6
0
 void IMailbox.SetInTransitStatus(InTransitStatus status, out bool onlineMoveSupported)
 {
     throw new NotImplementedException();
 }