Esempio n. 1
0
 protected override void InternalProcessRecord()
 {
     TaskLogger.LogEnter(new object[]
     {
         this.DataObject
     });
     try
     {
         base.WriteVerbose(Strings.SettingMoveRequest);
         TransactionalRequestJob dataObject = this.DataObject;
         int num = 1;
         for (;;)
         {
             if (dataObject.CheckIfUnderlyingMessageHasChanged())
             {
                 base.WriteVerbose(Strings.ReloadingMoveRequest);
                 dataObject.Refresh();
                 this.ValidateMoveRequest(dataObject);
             }
             this.ModifyMoveRequest(dataObject);
             try
             {
                 base.InternalProcessRecord();
                 RequestJobLog.Write(dataObject);
             }
             catch (MapiExceptionObjectChanged)
             {
                 if (num >= 5 || base.Stopping)
                 {
                     throw;
                 }
                 num++;
                 continue;
             }
             break;
         }
         CommonUtils.CatchKnownExceptions(delegate
         {
             this.PostSaveAction();
         }, delegate(Exception ex)
         {
             this.WriteWarning(MrsStrings.PostSaveActionFailed(CommonUtils.FullExceptionMessage(ex)));
         });
     }
     finally
     {
         TaskLogger.LogExit();
     }
 }
Esempio n. 2
0
 protected override void InternalProcessRecord()
 {
     TaskLogger.LogEnter(new object[]
     {
         this.DataObject
     });
     try
     {
         TransactionalRequestJob dataObject = this.DataObject;
         if (!base.Stopping)
         {
             ReportData reportData = new ReportData(dataObject.RequestGuid, dataObject.ReportVersion);
             reportData.Delete(this.RJProvider.SystemMailbox);
             reportData.Append(this.GeneralReportEntries);
             reportData.Append(this.PerRecordReportEntries);
             reportData.Flush(this.RJProvider.SystemMailbox);
             base.InternalProcessRecord();
             RequestJobLog.Write(dataObject);
             if (this.MRSClient != null)
             {
                 if (this.MRSClient.ServerVersion[3])
                 {
                     this.MRSClient.RefreshMoveRequest2(dataObject.RequestGuid, this.MdbId.ObjectGuid, (int)dataObject.Flags, MoveRequestNotification.Created);
                 }
                 else
                 {
                     this.MRSClient.RefreshMoveRequest(dataObject.RequestGuid, this.MdbId.ObjectGuid, MoveRequestNotification.Created);
                 }
             }
             dataObject.CreateAsyncNotification((base.ExchangeRunspaceConfig != null) ? base.ExchangeRunspaceConfig.ExecutingUserAsRecipient : null, this.ExtendedAttributes);
         }
     }
     finally
     {
         TaskLogger.LogExit();
     }
 }