Example #1
0
 protected override void ValidateRequest(TransactionalRequestJob requestJob)
 {
     base.ValidateRequest(requestJob);
     base.ValidateRequestIsActive(requestJob);
     base.ValidateRequestProtectionStatus(requestJob);
     base.ValidateRequestIsRunnable(requestJob);
     base.ValidateRequestIsNotCancelled(requestJob);
     if (!requestJob.Suspend)
     {
         base.WriteVerbose(Strings.RequestNotSuspended(requestJob.Name));
     }
     if (RequestJobStateNode.RequestStateIs(requestJob.StatusDetail, RequestState.Completion) && !RequestJobStateNode.RequestStateIs(requestJob.StatusDetail, RequestState.IncrementalSync))
     {
         base.WriteError(new SuspendWhenReadyToCompleteCannotBeUsedDuringCompletionException(requestJob.Name), ErrorCategory.InvalidArgument, requestJob.Identity);
     }
     using (MailboxReplicationServiceClient mailboxReplicationServiceClient = requestJob.CreateMRSClient(base.ConfigSession, requestJob.WorkItemQueueMdb.ObjectGuid, base.UnreachableMrsServers))
     {
         LocalizedString message = requestJob.Message;
         requestJob.Message = LocalizedString.Empty;
         try
         {
             List <ReportEntry> entries = null;
             using (mailboxReplicationServiceClient.ValidateAndPopulateRequestJob(requestJob, out entries))
             {
                 RequestTaskHelper.WriteReportEntries(requestJob.Name, entries, requestJob.Identity, new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.TaskWarningLoggingDelegate(this.WriteWarning), new Task.TaskErrorLoggingDelegate(base.WriteError));
             }
         }
         finally
         {
             requestJob.Message = message;
         }
     }
 }
Example #2
0
 protected override void InternalValidate()
 {
     TaskLogger.LogEnter();
     try
     {
         this.RJProvider.AttachToMDB(this.MdbId.ObjectGuid);
         this.InitializeMRSClient();
         TransactionalRequestJob dataObject = this.DataObject;
         dataObject.TimeTracker.SetTimestamp(RequestJobTimestamp.Creation, new DateTime?(DateTime.UtcNow));
         dataObject.TimeTracker.CurrentState = RequestState.Queued;
         dataObject.JobType             = MRSJobType.RequestJobE15_TenantHint;
         dataObject.RequestGuid         = Guid.NewGuid();
         dataObject.AllowedToFinishMove = true;
         dataObject.BatchName           = this.BatchName;
         dataObject.BadItemLimit        = this.BadItemLimit;
         dataObject.LargeItemLimit      = this.LargeItemLimit;
         dataObject.Status          = RequestStatus.Queued;
         dataObject.RequestJobState = JobProcessingState.Ready;
         dataObject.Identity        = new RequestJobObjectId(dataObject.RequestGuid, this.MdbId.ObjectGuid, null);
         dataObject.RequestQueue    = ADObjectIdResolutionHelper.ResolveDN(this.MdbId);
         dataObject.RequestCreator  = this.ExecutingUserIdentity;
         this.SetRequestProperties(dataObject);
         this.CreateIndexEntries(dataObject);
         dataObject.Suspend = this.Suspend;
         if (!string.IsNullOrEmpty(this.SuspendComment))
         {
             dataObject.Message = MrsStrings.MoveRequestMessageInformational(new LocalizedString(this.SuspendComment));
         }
         base.InternalValidate();
         if (this.MRSClient != null)
         {
             List <ReportEntry> entries = null;
             using (TransactionalRequestJob transactionalRequestJob = this.MRSClient.ValidateAndPopulateRequestJob(this.DataObject, out entries))
             {
                 this.CopyDataToDataObject(transactionalRequestJob);
                 RequestTaskHelper.WriteReportEntries(dataObject.Name, entries, dataObject.Identity, new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.TaskWarningLoggingDelegate(this.WriteWarning), new Task.TaskErrorLoggingDelegate(base.WriteError));
             }
         }
     }
     finally
     {
         TaskLogger.LogExit();
     }
 }