protected override void ValidateRequest(TransactionalRequestJob requestJob)
        {
            DateTime?timestamp = requestJob.TimeTracker.GetTimestamp(RequestJobTimestamp.StartAfter);
            bool     flag      = RequestTaskHelper.CompareUtcTimeWithLocalTime(timestamp, this.StartAfter);
            bool     flag2     = base.IsFieldSet("StartAfter") && !flag;

            if (flag2)
            {
                this.CheckJobStatusInQueuedForStartAfterSet(requestJob);
            }
            DateTime utcNow = DateTime.UtcNow;

            if (flag2 && this.StartAfter != null)
            {
                RequestTaskHelper.ValidateStartAfterTime(this.StartAfter.Value.ToUniversalTime(), new Task.TaskErrorLoggingDelegate(base.WriteError), utcNow);
            }
            if (base.IsFieldSet("IncrementalSyncInterval"))
            {
                if (requestJob.IncrementalSyncInterval == TimeSpan.Zero || requestJob.JobType < MRSJobType.RequestJobE15_AutoResume)
                {
                    base.WriteError(new IncrementalSyncIntervalCannotBeSetOnNonIncrementalRequestsException(), ErrorCategory.InvalidArgument, this.Identity);
                }
                RequestTaskHelper.ValidateIncrementalSyncInterval(this.IncrementalSyncInterval, new Task.TaskErrorLoggingDelegate(base.WriteError));
            }
            if (base.IsFieldSet("StartAfter") && flag)
            {
                this.WriteWarning(Strings.WarningScheduledTimeIsUnchanged("StartAfter"));
            }
            base.ValidateRequest(requestJob);
        }
 protected override void ValidateMoveRequest(TransactionalRequestJob moveRequest)
 {
     if (moveRequest.IsFake)
     {
         return;
     }
     if (!base.ParameterSetName.Equals("MigrationMoveRequestQueue"))
     {
         base.ValidateMoveRequestProtectionStatus(moveRequest);
         if (moveRequest.ValidationResult == RequestJobBase.ValidationResultEnum.Valid)
         {
             base.ValidateMoveRequestIsActive(moveRequest);
             if (moveRequest.RequestJobState == JobProcessingState.InProgress && RequestJobStateNode.RequestStateIs(moveRequest.StatusDetail, RequestState.Cleanup) && moveRequest.IdleTime < TimeSpan.FromMinutes(60.0))
             {
                 base.WriteError(new CannotModifyCompletingRequestPermanentException(base.LocalADUser.ToString()), ErrorCategory.InvalidArgument, base.Identity);
             }
             if (moveRequest.CancelRequest)
             {
                 base.WriteVerbose(Strings.MoveAlreadyCanceled);
             }
             if (moveRequest.Status == RequestStatus.Completed || moveRequest.Status == RequestStatus.CompletedWithWarning)
             {
                 this.mrCondition = RemoveMoveRequest.MoveRequestCondition.MoveCompleted;
                 return;
             }
         }
         else
         {
             this.mrCondition = RemoveMoveRequest.MoveRequestCondition.FailedValidation;
         }
     }
 }
 protected override void InternalValidate()
 {
     TaskLogger.LogEnter(new object[]
     {
         this.DataObject
     });
     try
     {
         base.InternalValidate();
         TransactionalRequestJob dataObject = this.DataObject;
         if (base.IsFieldSet("TargetDatabase"))
         {
             ServerVersion serverVersion = new ServerVersion(MapiUtils.FindServerForMdb(dataObject.TargetDatabase.ObjectGuid, null, null, FindServerFlags.None).ServerVersion);
             if (this.newTargetServerVersion.Major != serverVersion.Major || this.newTargetServerVersion.Minor != serverVersion.Minor)
             {
                 base.WriteError(new RecipientTaskException(Strings.ErrorCannotRetargetToDifferentVersionServerThanOriginal(this.newTargetServerVersion.ToString(), serverVersion.ToString())), ErrorCategory.InvalidArgument, base.Identity);
             }
         }
         if (base.IsFieldSet("ArchiveTargetDatabase"))
         {
             ServerVersion serverVersion2 = new ServerVersion(MapiUtils.FindServerForMdb(dataObject.TargetArchiveDatabase.ObjectGuid, null, null, FindServerFlags.None).ServerVersion);
             if (this.newArchiveTargetServerVersion.Major != serverVersion2.Major || this.newArchiveTargetServerVersion.Minor != serverVersion2.Minor)
             {
                 base.WriteError(new RecipientTaskException(Strings.ErrorCannotRetargetToDifferentVersionArchiveServerThanOriginal(this.newArchiveTargetServerVersion.ToString(), serverVersion2.ToString())), ErrorCategory.InvalidArgument, base.Identity);
             }
         }
     }
     finally
     {
         TaskLogger.LogExit();
     }
 }
 private void CheckMoveStatusInQueuedForStartAfterSet(TransactionalRequestJob moveRequest)
 {
     if (!RequestJobStateNode.RequestStateIs(moveRequest.StatusDetail, RequestState.Queued))
     {
         base.WriteError(new ErrorStartAfterCanBeSetOnlyInQueuedException(), ErrorCategory.InvalidArgument, base.Identity);
     }
 }
Exemple #5
0
 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);
     }
 }
Exemple #6
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;
         }
     }
 }
Exemple #7
0
 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 ModifyRequestInternal(TransactionalRequestJob requestJob, StringBuilder changedValuesTracker)
 {
     if (base.IsFieldSet("RemoteSourceMailboxServerLegacyDN"))
     {
         changedValuesTracker.AppendLine(string.Format("RemoteMailboxServerLegacyDN: {0} -> {1}", requestJob.RemoteMailboxServerLegacyDN, this.RemoteSourceMailboxServerLegacyDN));
         requestJob.RemoteMailboxServerLegacyDN = this.RemoteSourceMailboxServerLegacyDN;
     }
     if (base.IsFieldSet("OutlookAnywhereHostName"))
     {
         changedValuesTracker.AppendLine(string.Format("OutlookAnywhereHostName: {0} -> {1}", requestJob.OutlookAnywhereHostName, this.OutlookAnywhereHostName));
         requestJob.OutlookAnywhereHostName = this.OutlookAnywhereHostName;
     }
     if (base.IsFieldSet("RemoteCredential"))
     {
         changedValuesTracker.AppendLine("RemoteCredential: <secure> -> <secure>");
         requestJob.RemoteCredential = RequestTaskHelper.GetNetworkCredential(this.RemoteCredential, requestJob.AuthenticationMethod);
     }
     if (base.IsFieldSet("IsAdministrativeCredential"))
     {
         changedValuesTracker.AppendLine(string.Format("IsAdministrativeCredential: {0} -> {1}", requestJob.IsAdministrativeCredential, this.IsAdministrativeCredential));
         requestJob.IsAdministrativeCredential = new bool?(this.IsAdministrativeCredential);
     }
     if (base.IsFieldSet("StartAfter") && !RequestTaskHelper.CompareUtcTimeWithLocalTime(requestJob.TimeTracker.GetTimestamp(RequestJobTimestamp.StartAfter), this.StartAfter))
     {
         RequestTaskHelper.SetStartAfter(this.StartAfter, requestJob, changedValuesTracker);
     }
     if (base.IsFieldSet("IncrementalSyncInterval"))
     {
         changedValuesTracker.AppendLine(string.Format("IncrementalSyncInterval: {0} -> {1}", requestJob.IncrementalSyncInterval, this.IncrementalSyncInterval));
         requestJob.IncrementalSyncInterval = this.IncrementalSyncInterval;
     }
 }
Exemple #9
0
 protected void ValidateRequestType(TransactionalRequestJob requestJob)
 {
     if (requestJob.RequestType != SetRequestBase <TIdentity> .RequestType)
     {
         base.WriteError(new ManagementObjectNotFoundException(Strings.ErrorNotEnoughInformationToFindRequestOfCorrectType), ErrorCategory.InvalidArgument, this.Identity);
     }
 }
Exemple #10
0
 protected override void ModifyRequest(TransactionalRequestJob requestJob)
 {
     base.ModifyRequest(requestJob);
     if (base.IsFieldSet("SourceDatabase"))
     {
         PublicFolderDatabase publicFolderDatabase = (PublicFolderDatabase)base.GetDataObject <PublicFolderDatabase>(this.SourceDatabase, base.ConfigSession, null, new LocalizedString?(Strings.ErrorDatabaseNotFound(this.SourceDatabase.ToString())), new LocalizedString?(Strings.ErrorDatabaseNotUnique(this.SourceDatabase.ToString())));
         DatabaseInformation  databaseInformation  = MapiUtils.FindServerForMdb(publicFolderDatabase.Id.ObjectGuid, null, null, FindServerFlags.None);
         if (!this.IsSupportedDatabaseVersion(databaseInformation.ServerVersion))
         {
             base.WriteError(new DatabaseVersionUnsupportedPermanentException(publicFolderDatabase.Identity.ToString(), databaseInformation.ServerFqdn, new ServerVersion(databaseInformation.ServerVersion).ToString()), ErrorCategory.InvalidArgument, null);
         }
         requestJob.SourceDatabase = publicFolderDatabase.Id;
     }
     if (base.IsFieldSet("RemoteMailboxLegacyDN"))
     {
         requestJob.RemoteMailboxLegacyDN = this.RemoteMailboxLegacyDN;
     }
     if (base.IsFieldSet("RemoteMailboxServerLegacyDN"))
     {
         requestJob.RemoteMailboxServerLegacyDN = this.RemoteMailboxServerLegacyDN;
     }
     if (base.IsFieldSet("OutlookAnywhereHostName"))
     {
         requestJob.OutlookAnywhereHostName = this.OutlookAnywhereHostName;
     }
     if (base.IsFieldSet("AuthenticationMethod"))
     {
         requestJob.AuthenticationMethod = new AuthenticationMethod?(this.AuthenticationMethod);
     }
     if (base.IsFieldSet("RemoteCredential"))
     {
         requestJob.RemoteCredential = RequestTaskHelper.GetNetworkCredential(this.RemoteCredential, requestJob.AuthenticationMethod);
     }
 }
 protected override void SetRequestProperties(TransactionalRequestJob dataObject)
 {
     base.SetRequestProperties(dataObject);
     dataObject.JobType      = MRSJobType.RequestJobE15_CreatePublicFoldersUnderParentInSecondary;
     dataObject.RequestType  = MRSRequestType.PublicFolderMailboxMigration;
     dataObject.WorkloadType = base.WorkloadType;
     if (base.ParameterSetName.Equals("MailboxMigrationOutlookAnywherePublicFolder"))
     {
         dataObject.AuthenticationMethod        = new AuthenticationMethod?(this.AuthenticationMethod);
         dataObject.OutlookAnywhereHostName     = this.OutlookAnywhereHostName;
         dataObject.RemoteCredential            = RequestTaskHelper.GetNetworkCredential(this.RemoteCredential, new AuthenticationMethod?(this.AuthenticationMethod));
         dataObject.RemoteMailboxLegacyDN       = this.RemoteMailboxLegacyDN;
         dataObject.RemoteMailboxServerLegacyDN = this.RemoteMailboxServerLegacyDN;
     }
     else
     {
         dataObject.SourceDatabase     = this.sourceDatabase;
         dataObject.SourceExchangeGuid = this.sourceDatabase.ObjectGuid;
     }
     dataObject.PreserveMailboxSignature   = false;
     dataObject.PreventCompletion          = true;
     dataObject.SuspendWhenReadyToComplete = true;
     dataObject.AllowedToFinishMove        = false;
     dataObject.SourceDatabase             = this.sourceDatabase;
     dataObject.TargetDatabase             = base.MdbId;
     dataObject.TargetUserId                 = this.TargetMailboxUser.Id;
     dataObject.ExchangeGuid                 = this.TargetMailboxUser.ExchangeGuid;
     dataObject.TargetExchangeGuid           = this.TargetMailboxUser.ExchangeGuid;
     dataObject.FolderToMailboxMap           = this.folderToMailboxMapping;
     dataObject.AllowLargeItems              = false;
     dataObject.SkipFolderPromotedProperties = true;
     dataObject.SkipFolderViews              = true;
     dataObject.SkipFolderRestrictions       = true;
     dataObject.SkipContentVerification      = true;
 }
 protected override void ValidateRequest(TransactionalRequestJob requestJob)
 {
     base.ValidateRequest(requestJob);
     if (base.IsFieldSet("LargeItemLimit") && requestJob.AllowLargeItems)
     {
         base.WriteError(new RecipientTaskException(Strings.ErrorIncompatibleParameters("AllowLargeItems", "LargeItemLimit")), ErrorCategory.InvalidArgument, this.Identity);
     }
 }
Exemple #13
0
 protected override void ValidateRequest(TransactionalRequestJob requestJob)
 {
     if (base.IsFieldSet("IncrementalSyncInterval"))
     {
         RequestTaskHelper.ValidateIncrementalSyncInterval(this.IncrementalSyncInterval, new Task.TaskErrorLoggingDelegate(base.WriteError));
     }
     base.ValidateRequest(requestJob);
 }
Exemple #14
0
 protected override MailboxRelocationRequest ConvertToPresentationObject(TransactionalRequestJob dataObject)
 {
     if (dataObject.IndexEntries == null || dataObject.IndexEntries.Count < 1)
     {
         base.WriteError(new RequestIndexEntriesAbsentPermanentException(base.RequestName), ErrorCategory.InvalidArgument, this.Mailbox);
     }
     return(new MailboxRelocationRequest(dataObject.IndexEntries[0]));
 }
 protected override void ModifyRequestInternal(TransactionalRequestJob requestJob, StringBuilder changedValuesTracker)
 {
     if (base.IsFieldSet("SuspendWhenReadyToComplete"))
     {
         changedValuesTracker.AppendLine(string.Format("SWRTC: {0} -> {1}", requestJob.SuspendWhenReadyToComplete, this.SuspendWhenReadyToComplete));
         requestJob.SuspendWhenReadyToComplete = this.SuspendWhenReadyToComplete;
     }
 }
 protected override SyncRequest ConvertToPresentationObject(TransactionalRequestJob dataObject)
 {
     if (dataObject.IndexEntries != null && dataObject.IndexEntries.Count >= 1)
     {
         return(new SyncRequest(dataObject.IndexEntries[0]));
     }
     return(null);
 }
 internal static void ApplyOrganization(TransactionalRequestJob dataObject, OrganizationId organizationId)
 {
     dataObject.OrganizationId = organizationId;
     if (organizationId != OrganizationId.ForestWideOrgId)
     {
         dataObject.PartitionHint = TenantPartitionHint.FromOrganizationId(organizationId);
         dataObject.ExternalDirectoryOrganizationId = dataObject.PartitionHint.GetExternalDirectoryOrganizationId();
     }
 }
Exemple #18
0
 protected override void ModifyRequest(TransactionalRequestJob requestJob)
 {
     if (requestJob.Suspend)
     {
         DateTime?timestamp = requestJob.TimeTracker.GetTimestamp(RequestJobTimestamp.StartAfter);
         requestJob.TimeTracker.SetTimestamp(RequestJobTimestamp.DoNotPickUntil, timestamp);
     }
     base.ModifyRequest(requestJob);
 }
Exemple #19
0
 protected override MergeRequest ConvertToPresentationObject(TransactionalRequestJob dataObject)
 {
     if (dataObject.IndexEntries != null && dataObject.IndexEntries.Count >= 1)
     {
         return(new MergeRequest(dataObject.IndexEntries[0]));
     }
     base.WriteError(new RequestIndexEntriesAbsentPermanentException(base.RequestName), ErrorCategory.InvalidArgument, this.TargetMailbox);
     return(null);
 }
 protected override FolderMoveRequest ConvertToPresentationObject(TransactionalRequestJob dataObject)
 {
     if (dataObject.IndexEntries != null && dataObject.IndexEntries.Count >= 1)
     {
         return(new FolderMoveRequest(dataObject.IndexEntries[0]));
     }
     base.WriteError(new RequestIndexEntriesAbsentPermanentException(dataObject.ToString()), ErrorCategory.InvalidArgument, null);
     return(null);
 }
Exemple #21
0
 protected override void ModifyRequest(TransactionalRequestJob requestJob)
 {
     base.ModifyRequest(requestJob);
     if (base.IsFieldSet("SuspendWhenReadyToComplete"))
     {
         requestJob.SuspendWhenReadyToComplete = this.SuspendWhenReadyToComplete;
         requestJob.PreventCompletion          = this.SuspendWhenReadyToComplete;
         requestJob.AllowedToFinishMove        = !this.SuspendWhenReadyToComplete;
     }
 }
 protected override void ModifyRequestInternal(TransactionalRequestJob requestJob, StringBuilder changedValuesTracker)
 {
     base.ModifyRequestInternal(requestJob, changedValuesTracker);
     if (base.IsFieldSet("SkipMoving"))
     {
         RequestJobInternalFlags requestJobInternalFlags = requestJob.RequestJobInternalFlags;
         RequestTaskHelper.SetSkipMoving(this.SkipMoving, requestJob, new Task.TaskErrorLoggingDelegate(base.WriteError), true);
         changedValuesTracker.AppendLine(string.Format("InternalFlags: {0} -> {1}", requestJobInternalFlags, requestJob.RequestJobInternalFlags));
     }
 }
Exemple #23
0
 protected override void SetRequestProperties(TransactionalRequestJob dataObject)
 {
     base.SetRequestProperties(dataObject);
     dataObject.RequestType = MRSRequestType.MailboxImport;
     if (dataObject.WorkloadType == RequestWorkloadType.None)
     {
         if (string.IsNullOrEmpty(this.RemoteHostName))
         {
             dataObject.WorkloadType = RequestWorkloadType.Local;
         }
         else
         {
             dataObject.WorkloadType = RequestWorkloadType.RemotePstIngestion;
         }
     }
     dataObject.ContentCodePage = this.ContentCodePage;
     dataObject.FilePath        = this.FilePath.PathName;
     if (this.user != null)
     {
         dataObject.TargetUserId = this.user.Id;
         dataObject.TargetUser   = this.user;
     }
     if (base.ParameterSetName.Equals("MailboxImportRequest"))
     {
         if (!string.IsNullOrEmpty(this.SourceRootFolder))
         {
             dataObject.SourceRootFolder = this.SourceRootFolder;
         }
         if (!string.IsNullOrEmpty(this.TargetRootFolder))
         {
             dataObject.TargetRootFolder = this.TargetRootFolder;
         }
         if (this.IsArchive)
         {
             dataObject.TargetIsArchive    = true;
             dataObject.TargetExchangeGuid = this.user.ArchiveGuid;
             dataObject.TargetDatabase     = ADObjectIdResolutionHelper.ResolveDN(this.user.ArchiveDatabase);
         }
         else
         {
             dataObject.TargetIsArchive    = false;
             dataObject.TargetExchangeGuid = this.user.ExchangeGuid;
             dataObject.TargetDatabase     = ADObjectIdResolutionHelper.ResolveDN(this.user.Database);
         }
         dataObject.TargetAlias = this.user.Alias;
         if (this.RemoteCredential != null)
         {
             dataObject.RemoteCredential = RequestTaskHelper.GetNetworkCredential(this.RemoteCredential, null);
         }
         if (!string.IsNullOrEmpty(this.RemoteHostName))
         {
             dataObject.RemoteHostName = this.RemoteHostName;
         }
     }
 }
Exemple #24
0
        protected override void ValidateRequest(TransactionalRequestJob requestJob)
        {
            bool flag  = !OrganizationId.ForestWideOrgId.Equals(base.ExecutingUserOrganizationId);
            bool flag2 = !string.IsNullOrEmpty(base.IsFieldSet("RemoteHostName") ? this.RemoteHostName : requestJob.RemoteHostName);

            if (flag && !flag2)
            {
                base.WriteError(new RemoteMailboxImportNeedRemoteProxyException(), ErrorCategory.InvalidArgument, this);
            }
            base.ValidateRequest(requestJob);
        }
Exemple #25
0
 private void SetSkipMergingAndInternalFlags(TransactionalRequestJob dataObject)
 {
     RequestTaskHelper.SetSkipMerging(this.SkipMerging, dataObject, new Task.TaskErrorLoggingDelegate(base.WriteError));
     RequestTaskHelper.SetInternalFlags(this.InternalFlags, dataObject, new Task.TaskErrorLoggingDelegate(base.WriteError));
     if (this.SkipMerging == null)
     {
         using (SettingsContextBase.ActivateContext(dataObject))
         {
             dataObject.SkipKnownCorruptions = ConfigBase <MRSConfigSchema> .GetConfig <bool>("SkipKnownCorruptionsDefault");
         }
     }
 }
Exemple #26
0
 protected override void ValidateRequest(TransactionalRequestJob requestJob)
 {
     if (!requestJob.SuspendWhenReadyToComplete && this.SuspendWhenReadyToComplete)
     {
         base.WriteError(new SuspendWhenReadyToCompleteNotSupportedException(requestJob.Name), ErrorCategory.InvalidArgument, this.Identity);
     }
     if (requestJob.SuspendWhenReadyToComplete && requestJob.StatusDetail == RequestState.AutoSuspended && !this.SuspendWhenReadyToComplete)
     {
         base.WriteError(new IncrementalMergesRequireSuspendWhenReadyToCompleteException(requestJob.Name), ErrorCategory.InvalidArgument, this.Identity);
     }
     base.ValidateRequest(requestJob);
 }
Exemple #27
0
 protected override void ModifyRequestInternal(TransactionalRequestJob requestJob, StringBuilder changedValuesTracker)
 {
     if (base.IsFieldSet("RemoteServerName"))
     {
         changedValuesTracker.AppendLine(string.Format("RemoteServerName: {0} -> {1}", requestJob.RemoteHostName, this.RemoteServerName));
         requestJob.RemoteHostName = this.RemoteServerName;
     }
     if (base.IsFieldSet("RemoteServerPort"))
     {
         changedValuesTracker.AppendLine(string.Format("RemoteServerPort: {0} -> {1}", requestJob.RemoteHostPort, this.RemoteServerPort));
         requestJob.RemoteHostPort = this.RemoteServerPort;
     }
     if (base.IsFieldSet("SmtpServerName"))
     {
         changedValuesTracker.AppendLine(string.Format("SmtpServerName: {0} -> {1}", requestJob.SmtpServerName, this.SmtpServerName));
         requestJob.SmtpServerName = this.SmtpServerName;
     }
     if (base.IsFieldSet("SmtpServerPort"))
     {
         changedValuesTracker.AppendLine(string.Format("SmtpServerPort: {0} -> {1}", requestJob.SmtpServerPort, this.SmtpServerPort));
         requestJob.SmtpServerPort = this.SmtpServerPort;
     }
     if (base.IsFieldSet("Authentication"))
     {
         changedValuesTracker.AppendLine(string.Format("Authentication: {0} -> {1}", requestJob.AuthenticationMethod, this.Authentication));
         requestJob.AuthenticationMethod = new AuthenticationMethod?(this.Authentication);
     }
     if (base.IsFieldSet("Security"))
     {
         changedValuesTracker.AppendLine(string.Format("Security: {0} -> {1}", requestJob.SecurityMechanism, this.Security));
         requestJob.SecurityMechanism = this.Security;
     }
     if (base.IsFieldSet("Password"))
     {
         changedValuesTracker.AppendLine("Password: <secure> -> <secure>");
         PSCredential psCred = new PSCredential(requestJob.RemoteCredential.UserName, this.Password);
         requestJob.RemoteCredential = RequestTaskHelper.GetNetworkCredential(psCred, requestJob.AuthenticationMethod);
     }
     if (base.IsFieldSet("IncrementalSyncInterval"))
     {
         changedValuesTracker.AppendLine(string.Format("IncrementalSyncInterval: {0} -> {1}", requestJob.IncrementalSyncInterval, this.IncrementalSyncInterval));
         requestJob.IncrementalSyncInterval = this.IncrementalSyncInterval;
     }
     if (base.IsFieldSet("StartAfter") && !RequestTaskHelper.CompareUtcTimeWithLocalTime(requestJob.TimeTracker.GetTimestamp(RequestJobTimestamp.StartAfter), this.StartAfter))
     {
         RequestTaskHelper.SetStartAfter(this.StartAfter, requestJob, changedValuesTracker);
     }
     if (base.IsFieldSet("CompleteAfter") && !RequestTaskHelper.CompareUtcTimeWithLocalTime(requestJob.TimeTracker.GetTimestamp(RequestJobTimestamp.CompleteAfter), this.CompleteAfter))
     {
         RequestTaskHelper.SetCompleteAfter(this.CompleteAfter, requestJob, changedValuesTracker);
     }
 }
Exemple #28
0
 protected override void ValidateRequest(TransactionalRequestJob requestJob)
 {
     base.ValidateRequest(requestJob);
     if (base.ParameterSetName.Equals("MailboxMigrationLocalPublicFolder") && requestJob.Flags.HasFlag(RequestFlags.CrossOrg))
     {
         base.WriteError(new RecipientTaskException(Strings.ErrorInvalidParametersForOutlookAnywherePublicFolderMailboxMigration), ExchangeErrorCategory.Client, null);
         return;
     }
     if (base.ParameterSetName.Equals("MailboxMigrationOutlookAnywherePublicFolder") && requestJob.Flags.HasFlag(RequestFlags.IntraOrg))
     {
         base.WriteError(new RecipientTaskException(Strings.ErrorInvalidParametersForLocalPublicFolderMailboxMigration), ExchangeErrorCategory.Client, null);
     }
 }
Exemple #29
0
 protected override void CreateIndexEntries(TransactionalRequestJob dataObject)
 {
     RequestIndexEntryProvider.CreateAndPopulateRequestIndexEntries(dataObject, new RequestIndexId(this.mailbox.Id));
     if (base.ParameterSetName == "MailboxRelocationSplit")
     {
         RequestIndexEntryProvider.CreateAndPopulateRequestIndexEntries(dataObject, new RequestIndexId(this.sourceContainer.Id));
         return;
     }
     if (base.ParameterSetName == "MailboxRelocationJoin")
     {
         RequestIndexEntryProvider.CreateAndPopulateRequestIndexEntries(dataObject, new RequestIndexId(this.targetContainer.Id));
     }
 }
Exemple #30
0
 protected override void ModifyRequestInternal(TransactionalRequestJob requestJob, StringBuilder changedValuesTracker)
 {
     if (base.IsFieldSet("RemoteCredential"))
     {
         changedValuesTracker.AppendLine("RemoteCredential: <secure> -> <secure>");
         requestJob.RemoteCredential = RequestTaskHelper.GetNetworkCredential(this.RemoteCredential, null);
     }
     if (base.IsFieldSet("RemoteHostName"))
     {
         changedValuesTracker.AppendLine(string.Format("RemoteHostName: {0} -> {1}", requestJob.RemoteHostName, this.RemoteHostName));
         requestJob.RemoteHostName = this.RemoteHostName;
     }
     base.ModifyRequestInternal(requestJob, changedValuesTracker);
 }