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