protected override void ModifyMoveRequest(TransactionalRequestJob moveRequest) { this.mdbGuid = moveRequest.WorkItemQueueMdb.ObjectGuid; if (base.LocalADUser != null) { moveRequest.DomainControllerToUpdate = base.LocalADUser.OriginatingServer; } moveRequest.PoisonCount = 0; if (moveRequest.Suspend) { moveRequest.Suspend = false; moveRequest.Message = LocalizedString.Empty; DateTime?timestamp = moveRequest.TimeTracker.GetTimestamp(RequestJobTimestamp.StartAfter); moveRequest.TimeTracker.SetTimestamp(RequestJobTimestamp.DoNotPickUntil, timestamp); moveRequest.TotalRetryCount = 0; LocalizedString msg; if (this.SuspendWhenReadyToComplete) { moveRequest.SuspendWhenReadyToComplete = true; msg = MrsStrings.ReportRequestResumedWithSuspendWhenReadyToComplete(base.ExecutingUserIdentity); } else { msg = MrsStrings.ReportMoveRequestResumed(base.ExecutingUserIdentity); } ReportData reportData = new ReportData(moveRequest.ExchangeGuid, moveRequest.ReportVersion); ConnectivityRec connectivityRec = new ConnectivityRec(ServerKind.Cmdlet, VersionInformation.MRS); reportData.Append(msg, connectivityRec); reportData.Flush(base.MRProvider.SystemMailbox); } }
protected override void ModifyRequest(TransactionalRequestJob requestJob) { this.mdbGuid = requestJob.WorkItemQueueMdb.ObjectGuid; if (requestJob.TargetUser != null) { requestJob.DomainControllerToUpdate = requestJob.TargetUser.OriginatingServer; } else if (requestJob.SourceUser != null) { requestJob.DomainControllerToUpdate = requestJob.SourceUser.OriginatingServer; } requestJob.PoisonCount = 0; if (requestJob.Suspend) { requestJob.Suspend = false; requestJob.Message = LocalizedString.Empty; requestJob.TotalRetryCount = 0; LocalizedString msg; if (this.SuspendWhenReadyToComplete) { requestJob.SuspendWhenReadyToComplete = true; msg = MrsStrings.ReportRequestResumedWithSuspendWhenReadyToComplete(base.ExecutingUserIdentity); } else { msg = MrsStrings.ReportRequestResumed(base.ExecutingUserIdentity); } ReportData reportData = new ReportData(requestJob.RequestGuid, requestJob.ReportVersion); ConnectivityRec connectivityRec = new ConnectivityRec(ServerKind.Cmdlet, VersionInformation.MRS); reportData.Append(msg, connectivityRec); reportData.Flush(base.RJProvider.SystemMailbox); } }
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(); } }
protected override void ModifyMoveRequest(TransactionalRequestJob moveRequest) { this.mdbGuid = moveRequest.WorkItemQueueMdb.ObjectGuid; if (base.LocalADUser != null) { moveRequest.DomainControllerToUpdate = base.LocalADUser.OriginatingServer; } if (!moveRequest.CancelRequest) { moveRequest.CancelRequest = true; moveRequest.TimeTracker.SetTimestamp(RequestJobTimestamp.RequestCanceled, new DateTime?(DateTime.UtcNow)); base.WriteVerbose(Strings.MarkingMoveJobAsCanceled); ReportData reportData = new ReportData(moveRequest.ExchangeGuid, moveRequest.ReportVersion); ConnectivityRec connectivityRec = new ConnectivityRec(ServerKind.Cmdlet, VersionInformation.MRS); reportData.Append(MrsStrings.ReportMoveRequestRemoved(base.ExecutingUserIdentity), connectivityRec); reportData.Flush(base.MRProvider.SystemMailbox); } }
protected override void ModifyMoveRequest(TransactionalRequestJob moveRequest) { this.mdbGuid = moveRequest.WorkItemQueueMdb.ObjectGuid; if (base.LocalADUser != null) { moveRequest.DomainControllerToUpdate = base.LocalADUser.OriginatingServer; } moveRequest.TimeTracker.SetTimestamp(RequestJobTimestamp.DoNotPickUntil, new DateTime?(DateTime.MaxValue)); if (!moveRequest.Suspend) { moveRequest.Suspend = true; if (!string.IsNullOrEmpty(this.SuspendComment)) { moveRequest.Message = MrsStrings.MoveRequestMessageInformational(new LocalizedString(this.SuspendComment)); } ReportData reportData = new ReportData(moveRequest.ExchangeGuid, moveRequest.ReportVersion); ConnectivityRec connectivityRec = new ConnectivityRec(ServerKind.Cmdlet, VersionInformation.MRS); reportData.Append(MrsStrings.ReportMoveRequestSuspended(base.ExecutingUserIdentity), connectivityRec); reportData.Flush(base.MRProvider.SystemMailbox); } }
protected override void ModifyRequest(TransactionalRequestJob requestJob) { this.mdbGuid = requestJob.WorkItemQueueMdb.ObjectGuid; if (requestJob.TargetUser != null) { requestJob.DomainControllerToUpdate = requestJob.TargetUser.OriginatingServer; } else if (requestJob.SourceUser != null) { requestJob.DomainControllerToUpdate = requestJob.SourceUser.OriginatingServer; } if (!requestJob.CancelRequest) { requestJob.CancelRequest = true; base.WriteVerbose(Strings.MarkingMoveJobAsCanceled); ReportData reportData = new ReportData(requestJob.RequestGuid, requestJob.ReportVersion); ConnectivityRec connectivityRec = new ConnectivityRec(ServerKind.Cmdlet, VersionInformation.MRS); reportData.Append(MrsStrings.ReportRequestRemoved(base.ExecutingUserIdentity), connectivityRec); reportData.Flush(base.RJProvider.SystemMailbox); } }
protected override void ModifyRequest(TransactionalRequestJob requestJob) { this.mdbGuid = requestJob.WorkItemQueueMdb.ObjectGuid; if (requestJob.TargetUser != null) { requestJob.DomainControllerToUpdate = requestJob.TargetUser.OriginatingServer; } else if (requestJob.SourceUser != null) { requestJob.DomainControllerToUpdate = requestJob.SourceUser.OriginatingServer; } if (!requestJob.Suspend) { requestJob.Suspend = true; if (!string.IsNullOrEmpty(this.SuspendComment)) { requestJob.Message = MrsStrings.MoveRequestMessageInformational(new LocalizedString(this.SuspendComment)); } ReportData reportData = new ReportData(requestJob.RequestGuid, requestJob.ReportVersion); ConnectivityRec connectivityRec = new ConnectivityRec(ServerKind.Cmdlet, VersionInformation.MRS); reportData.Append(MrsStrings.ReportRequestSuspended(base.ExecutingUserIdentity), connectivityRec); reportData.Flush(base.RJProvider.SystemMailbox); } }
protected override void ModifyMoveRequest(TransactionalRequestJob moveRequest) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendLine("Set-MoveRequest changed values:"); this.mdbGuid = moveRequest.WorkItemQueueMdb.ObjectGuid; if (base.LocalADUser != null) { moveRequest.DomainControllerToUpdate = base.LocalADUser.OriginatingServer; } if (base.IsFieldSet("SuspendWhenReadyToComplete")) { stringBuilder.AppendLine(string.Format("SWRTC: {0} -> {1}", moveRequest.SuspendWhenReadyToComplete, this.SuspendWhenReadyToComplete)); moveRequest.SuspendWhenReadyToComplete = this.SuspendWhenReadyToComplete; } if (base.IsFieldSet("RemoteCredential")) { string remoteCredentialUsername = moveRequest.RemoteCredentialUsername; moveRequest.RemoteCredential = RequestTaskHelper.GetNetworkCredential(this.RemoteCredential, null); stringBuilder.AppendLine(string.Format("RemoteCredential: {0}:<pwd> -> {1}:<pwd>", remoteCredentialUsername, moveRequest.RemoteCredentialUsername)); if ((moveRequest.Flags & RequestFlags.RemoteLegacy) != RequestFlags.None) { if (moveRequest.Direction == RequestDirection.Pull) { moveRequest.SourceCredential = moveRequest.RemoteCredential; } else { moveRequest.TargetCredential = moveRequest.RemoteCredential; } } } if (base.IsFieldSet("RemoteGlobalCatalog")) { string arg; if ((moveRequest.Flags & RequestFlags.RemoteLegacy) != RequestFlags.None) { if (moveRequest.Direction == RequestDirection.Pull) { arg = moveRequest.SourceDCName; moveRequest.SourceDCName = this.RemoteGlobalCatalog; } else { arg = moveRequest.TargetDCName; moveRequest.TargetDCName = this.RemoteGlobalCatalog; } } else { arg = moveRequest.RemoteDomainControllerToUpdate; moveRequest.RemoteDomainControllerToUpdate = this.RemoteGlobalCatalog; } stringBuilder.AppendLine(string.Format("RemoteGC: {0} -> {1}", arg, this.RemoteGlobalCatalog)); } if (base.IsFieldSet("RemoteHostName")) { stringBuilder.AppendLine(string.Format("RemoteHostName: {0} -> {1}", moveRequest.RemoteHostName, this.RemoteHostName)); moveRequest.RemoteHostName = this.RemoteHostName; } if (base.IsFieldSet("BadItemLimit")) { stringBuilder.AppendLine(string.Format("BadItemLimit: {0} -> {1}", moveRequest.BadItemLimit, this.BadItemLimit)); moveRequest.BadItemLimit = this.BadItemLimit; } if (base.IsFieldSet("LargeItemLimit")) { stringBuilder.AppendLine(string.Format("LargeItemLimit: {0} -> {1}", moveRequest.LargeItemLimit, this.LargeItemLimit)); moveRequest.LargeItemLimit = this.LargeItemLimit; } if (base.IsFieldSet("Protect")) { stringBuilder.AppendLine(string.Format("Protect: {0} -> {1}", moveRequest.Protect, this.Protect)); moveRequest.Protect = this.Protect; } if (base.IsFieldSet("IgnoreRuleLimitErrors")) { stringBuilder.AppendLine(string.Format("IgnoreRuleLimitErrors: {0} -> {1}", moveRequest.IgnoreRuleLimitErrors, this.IgnoreRuleLimitErrors)); moveRequest.IgnoreRuleLimitErrors = this.IgnoreRuleLimitErrors; } if (base.IsFieldSet("BatchName")) { stringBuilder.AppendLine(string.Format("BatchName: {0} -> {1}", moveRequest.BatchName, this.BatchName)); moveRequest.BatchName = this.BatchName; } if (base.IsFieldSet("Priority")) { stringBuilder.AppendLine(string.Format("Priority: {0} -> {1}", moveRequest.Priority, this.Priority)); moveRequest.Priority = this.Priority; } if (base.IsFieldSet("CompletedRequestAgeLimit")) { stringBuilder.AppendLine(string.Format("CompletedRequestAgeLimit: {0} -> {1}", moveRequest.CompletedRequestAgeLimit, this.CompletedRequestAgeLimit)); moveRequest.CompletedRequestAgeLimit = this.CompletedRequestAgeLimit; } if (base.IsFieldSet("PreventCompletion")) { stringBuilder.AppendLine(string.Format("PreventCompletion: {0} -> {1}", moveRequest.PreventCompletion, this.PreventCompletion)); moveRequest.PreventCompletion = this.PreventCompletion; } if (base.IsFieldSet("StartAfter") && !RequestTaskHelper.CompareUtcTimeWithLocalTime(moveRequest.TimeTracker.GetTimestamp(RequestJobTimestamp.StartAfter), this.StartAfter)) { RequestTaskHelper.SetStartAfter(this.StartAfter, moveRequest, stringBuilder); } if (base.IsFieldSet("CompleteAfter") && !RequestTaskHelper.CompareUtcTimeWithLocalTime(moveRequest.TimeTracker.GetTimestamp(RequestJobTimestamp.CompleteAfter), this.CompleteAfter)) { RequestTaskHelper.SetCompleteAfter(this.CompleteAfter, moveRequest, stringBuilder); } if (base.IsFieldSet("IncrementalSyncInterval")) { moveRequest.IncrementalSyncInterval = this.IncrementalSyncInterval; } RequestTaskHelper.ValidateStartAfterCompleteAfterWithSuspendWhenReadyToComplete(moveRequest.TimeTracker.GetTimestamp(RequestJobTimestamp.StartAfter), moveRequest.TimeTracker.GetTimestamp(RequestJobTimestamp.CompleteAfter), moveRequest.SuspendWhenReadyToComplete, new Task.TaskErrorLoggingDelegate(base.WriteError)); RequestTaskHelper.ValidateStartAfterComesBeforeCompleteAfter(moveRequest.TimeTracker.GetTimestamp(RequestJobTimestamp.StartAfter), moveRequest.TimeTracker.GetTimestamp(RequestJobTimestamp.CompleteAfter), new Task.TaskErrorLoggingDelegate(base.WriteError)); if (base.IsFieldSet("SkipMoving")) { RequestJobInternalFlags requestJobInternalFlags = moveRequest.RequestJobInternalFlags; RequestTaskHelper.SetSkipMoving(this.SkipMoving, moveRequest, new Task.TaskErrorLoggingDelegate(base.WriteError), true); stringBuilder.AppendLine(string.Format("InternalFlags: {0} -> {1}", requestJobInternalFlags, moveRequest.RequestJobInternalFlags)); } if (base.IsFieldSet("InternalFlags")) { RequestJobInternalFlags requestJobInternalFlags2 = moveRequest.RequestJobInternalFlags; RequestTaskHelper.SetInternalFlags(this.InternalFlags, moveRequest, new Task.TaskErrorLoggingDelegate(base.WriteError)); stringBuilder.AppendLine(string.Format("InternalFlags: {0} -> {1}", requestJobInternalFlags2, moveRequest.RequestJobInternalFlags)); } ReportData reportData = new ReportData(moveRequest.ExchangeGuid, moveRequest.ReportVersion); ConnectivityRec connectivityRec = new ConnectivityRec(ServerKind.Cmdlet, VersionInformation.MRS); reportData.Append(MrsStrings.ReportMoveRequestSet(base.ExecutingUserIdentity), connectivityRec); reportData.AppendDebug(stringBuilder.ToString()); if (this.AcceptLargeDataLoss) { reportData.Append(MrsStrings.ReportLargeAmountOfDataLossAccepted2(moveRequest.BadItemLimit.ToString(), moveRequest.LargeItemLimit.ToString(), base.ExecutingUserIdentity)); } if (base.IsFieldSet("TargetDatabase") || base.IsFieldSet("ArchiveTargetDatabase")) { moveRequest.RehomeRequest = true; if (base.IsFieldSet("TargetDatabase")) { moveRequest.TargetDatabase = this.specifiedTargetMDB.Id; } if (base.IsFieldSet("ArchiveTargetDatabase")) { moveRequest.TargetArchiveDatabase = this.specifiedArchiveTargetMDB.Id; } } reportData.Flush(base.MRProvider.SystemMailbox); }
protected override void ModifyRequest(TransactionalRequestJob requestJob) { this.MdbGuid = requestJob.WorkItemQueueMdb.ObjectGuid; StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendLine("SetRequest changed values:"); if (requestJob.TargetUser != null) { requestJob.DomainControllerToUpdate = requestJob.TargetUser.OriginatingServer; } else if (requestJob.SourceUser != null) { requestJob.DomainControllerToUpdate = requestJob.SourceUser.OriginatingServer; } if (base.IsFieldSet("BadItemLimit")) { stringBuilder.AppendLine(string.Format("BadItemLimit: {0} -> {1}", requestJob.BadItemLimit, this.BadItemLimit)); requestJob.BadItemLimit = this.BadItemLimit; } if (base.IsFieldSet("LargeItemLimit")) { stringBuilder.AppendLine(string.Format("LargeItemLimit: {0} -> {1}", requestJob.LargeItemLimit, this.LargeItemLimit)); requestJob.LargeItemLimit = this.LargeItemLimit; } if (base.IsFieldSet("BatchName")) { stringBuilder.AppendLine(string.Format("BatchName: {0} -> {1}", requestJob.BatchName, this.BatchName)); requestJob.BatchName = (this.BatchName ?? string.Empty); } if (base.IsFieldSet("Priority")) { stringBuilder.AppendLine(string.Format("Priority: {0} -> {1}", requestJob.Priority, this.Priority)); requestJob.Priority = this.Priority; } if (base.IsFieldSet("CompletedRequestAgeLimit")) { stringBuilder.AppendLine(string.Format("CompletedRequestAgeLimit: {0} -> {1}", requestJob.CompletedRequestAgeLimit, this.CompletedRequestAgeLimit)); requestJob.CompletedRequestAgeLimit = this.CompletedRequestAgeLimit; } if (this.RehomeRequest) { stringBuilder.AppendLine(string.Format("RehomeRequest: {0} -> {1}", requestJob.RehomeRequest, this.RehomeRequest)); requestJob.RehomeRequest = this.RehomeRequest; } if (base.IsFieldSet("SkipMerging")) { RequestJobInternalFlags requestJobInternalFlags = requestJob.RequestJobInternalFlags; RequestTaskHelper.SetSkipMerging(this.SkipMerging, requestJob, new Task.TaskErrorLoggingDelegate(base.WriteError)); stringBuilder.AppendLine(string.Format("InternalFlags: {0} -> {1}", requestJobInternalFlags, requestJob.RequestJobInternalFlags)); } if (base.IsFieldSet("InternalFlags")) { RequestJobInternalFlags requestJobInternalFlags2 = requestJob.RequestJobInternalFlags; RequestTaskHelper.SetInternalFlags(this.InternalFlags, requestJob, new Task.TaskErrorLoggingDelegate(base.WriteError)); stringBuilder.AppendLine(string.Format("InternalFlags: {0} -> {1}", requestJobInternalFlags2, requestJob.RequestJobInternalFlags)); } if (base.IsFieldSet("RemoteHostName")) { stringBuilder.AppendLine(string.Format("RemoteHostName: {0} -> {1}", requestJob.RemoteHostName, this.RemoteHostName)); requestJob.RemoteHostName = this.RemoteHostName; } if (base.IsFieldSet("RemoteCredential")) { stringBuilder.AppendLine(string.Format("RemoteCredential: * -> *", new object[0])); requestJob.RemoteCredential = RequestTaskHelper.GetNetworkCredential(this.RemoteCredential, new AuthenticationMethod?(AuthenticationMethod.WindowsIntegrated)); } this.ModifyRequestInternal(requestJob, stringBuilder); ReportData reportData = new ReportData(requestJob.RequestGuid, requestJob.ReportVersion); ConnectivityRec connectivityRec = new ConnectivityRec(ServerKind.Cmdlet, VersionInformation.MRS); reportData.Append(MrsStrings.ReportRequestSet(base.ExecutingUserIdentity), connectivityRec); reportData.AppendDebug(stringBuilder.ToString()); if (this.AcceptLargeDataLoss) { reportData.Append(MrsStrings.ReportLargeAmountOfDataLossAccepted2(requestJob.BadItemLimit.ToString(), requestJob.LargeItemLimit.ToString(), base.ExecutingUserIdentity)); } reportData.Flush(base.RJProvider.SystemMailbox); }