public override void Initialize(TransactionalRequestJob syncRequest) { base.Initialize(syncRequest); base.RequestJobIdentity = syncRequest.Identity.ToString(); base.IncrementalSyncInterval = syncRequest.IncrementalSyncInterval; Guid targetExchangeGuid = syncRequest.TargetExchangeGuid; MailboxCopierFlags mailboxCopierFlags = MailboxCopierFlags.None; LocalizedString sourceTracingID = LocalizedString.Empty; switch (syncRequest.SyncProtocol) { case SyncProtocol.Imap: mailboxCopierFlags |= MailboxCopierFlags.Imap; sourceTracingID = MrsStrings.ImapTracingId(syncRequest.EmailAddress.ToString()); break; case SyncProtocol.Eas: mailboxCopierFlags |= MailboxCopierFlags.Eas; sourceTracingID = MrsStrings.EasTracingId(syncRequest.EmailAddress.ToString()); break; case SyncProtocol.Pop: mailboxCopierFlags |= MailboxCopierFlags.Pop; sourceTracingID = MrsStrings.PopTracingId(syncRequest.EmailAddress.ToString()); break; } string orgID = (syncRequest.OrganizationId != null && syncRequest.OrganizationId.OrganizationalUnit != null) ? (syncRequest.OrganizationId.OrganizationalUnit.Name + "\\") : string.Empty; base.MailboxMerger = new MailboxMerger(Guid.Empty, targetExchangeGuid, syncRequest, this, mailboxCopierFlags, sourceTracingID, MrsStrings.PrimaryMailboxTracingId(orgID, targetExchangeGuid)); }
public override void Initialize(TransactionalRequestJob mergeRequest) { base.Initialize(mergeRequest); if (mergeRequest.RequestType == MRSRequestType.MailboxImport || mergeRequest.RequestType == MRSRequestType.MailboxExport || mergeRequest.RequestType == MRSRequestType.MailboxRestore || mergeRequest.RequestType == MRSRequestType.Sync) { return; } base.RequestJobIdentity = mergeRequest.Identity.ToString(); bool flag = mergeRequest.RequestStyle == RequestStyle.CrossOrg && mergeRequest.Direction == RequestDirection.Pull; bool flag2 = mergeRequest.RequestStyle == RequestStyle.CrossOrg && mergeRequest.Direction == RequestDirection.Push; LocalizedString sourceTracingID = LocalizedString.Empty; LocalizedString targetTracingID = LocalizedString.Empty; string orgID = (mergeRequest.OrganizationId != null && mergeRequest.OrganizationId.OrganizationalUnit != null) ? (mergeRequest.OrganizationId.OrganizationalUnit.Name + "\\") : string.Empty; Guid guid; if (flag) { guid = Guid.Empty; sourceTracingID = MrsStrings.RPCHTTPMailboxId(mergeRequest.RemoteMailboxLegacyDN); } else { guid = mergeRequest.SourceExchangeGuid; sourceTracingID = (mergeRequest.SourceIsArchive ? MrsStrings.ArchiveMailboxTracingId(orgID, guid) : MrsStrings.PrimaryMailboxTracingId(orgID, guid)); } Guid guid2; if (flag2) { guid2 = Guid.Empty; targetTracingID = MrsStrings.RPCHTTPMailboxId(mergeRequest.RemoteMailboxLegacyDN); } else { guid2 = mergeRequest.TargetExchangeGuid; targetTracingID = (mergeRequest.TargetIsArchive ? MrsStrings.ArchiveMailboxTracingId(orgID, guid2) : MrsStrings.PrimaryMailboxTracingId(orgID, guid2)); } MailboxCopierFlags mailboxCopierFlags = MailboxCopierFlags.Merge; if (mergeRequest.RequestStyle == RequestStyle.CrossOrg) { mailboxCopierFlags |= MailboxCopierFlags.CrossOrg; } if (mergeRequest.SourceIsArchive) { mailboxCopierFlags |= MailboxCopierFlags.SourceIsArchive; } if (mergeRequest.TargetIsArchive) { mailboxCopierFlags |= MailboxCopierFlags.TargetIsArchive; } this.MailboxMerger = new MailboxMerger(guid, guid2, mergeRequest, this, mailboxCopierFlags, sourceTracingID, targetTracingID); }
public override void Initialize(TransactionalRequestJob importRequest) { base.Initialize(importRequest); base.RequestJobIdentity = importRequest.Identity.ToString(); Guid targetExchangeGuid = importRequest.TargetExchangeGuid; string orgID = (importRequest.OrganizationId != null && importRequest.OrganizationId.OrganizationalUnit != null) ? (importRequest.OrganizationId.OrganizationalUnit.Name + "\\") : string.Empty; LocalizedString sourceTracingID = MrsStrings.PstTracingId(importRequest.FilePath); LocalizedString targetTracingID = importRequest.TargetIsArchive ? MrsStrings.ArchiveMailboxTracingId(orgID, targetExchangeGuid) : MrsStrings.PrimaryMailboxTracingId(orgID, targetExchangeGuid); MailboxCopierFlags flags = MailboxCopierFlags.Merge | MailboxCopierFlags.SourceIsPST; base.MailboxMerger = new MailboxMerger(Guid.Empty, targetExchangeGuid, importRequest, this, flags, sourceTracingID, targetTracingID); }
public override void Initialize(TransactionalRequestJob restoreRequest) { base.Initialize(restoreRequest); base.RequestJobIdentity = restoreRequest.Identity.ToString(); Guid targetExchangeGuid = restoreRequest.TargetExchangeGuid; Guid sourceExchangeGuid = restoreRequest.SourceExchangeGuid; string orgID = (restoreRequest.OrganizationId != null && restoreRequest.OrganizationId.OrganizationalUnit != null) ? (restoreRequest.OrganizationId.OrganizationalUnit.Name + "\\") : string.Empty; string dbName = (restoreRequest.SourceDatabase != null) ? restoreRequest.SourceDatabase.Name : ((restoreRequest.RemoteDatabaseGuid != null) ? restoreRequest.RemoteDatabaseGuid.Value.ToString() : string.Empty); LocalizedString sourceTracingID = MrsStrings.RestoreMailboxTracingId(dbName, restoreRequest.SourceExchangeGuid); LocalizedString targetTracingID = restoreRequest.TargetIsArchive ? MrsStrings.ArchiveMailboxTracingId(orgID, targetExchangeGuid) : MrsStrings.PrimaryMailboxTracingId(orgID, targetExchangeGuid); MailboxCopierFlags flags = MailboxCopierFlags.Merge; base.MailboxMerger = new MailboxMerger(sourceExchangeGuid, targetExchangeGuid, restoreRequest, this, flags, sourceTracingID, targetTracingID); }
public override void Initialize(TransactionalRequestJob migrationRequestJob) { MrsTracer.Service.Function("PublicFolderMailboxMigrationJob.Initialize: SourceDatabase=\"{0}\", Flags={1}", new object[] { migrationRequestJob.SourceDatabase, migrationRequestJob.Flags }); TenantPublicFolderConfigurationCache.Instance.RemoveValue(migrationRequestJob.OrganizationId); this.publicFolderConfiguration = TenantPublicFolderConfigurationCache.Instance.GetValue(migrationRequestJob.OrganizationId); base.Initialize(migrationRequestJob); LocalizedString sourceTracingID = LocalizedString.Empty; MailboxCopierFlags mailboxCopierFlags = MailboxCopierFlags.PublicFolderMigration; bool flag = migrationRequestJob.RequestStyle == RequestStyle.CrossOrg; if (flag) { sourceTracingID = MrsStrings.RPCHTTPPublicFoldersId(migrationRequestJob.RemoteMailboxServerLegacyDN); mailboxCopierFlags |= MailboxCopierFlags.CrossOrg; } this.publicFolderMailboxMigrator = new PublicFolderMailboxMigrator(this.publicFolderConfiguration, migrationRequestJob.FolderToMailboxMap, migrationRequestJob.TargetExchangeGuid, mailboxCopierFlags | MailboxCopierFlags.Root, migrationRequestJob, this, sourceTracingID); }
public override void Initialize(TransactionalRequestJob migrationRequestJob) { MrsTracer.Service.Function("PublicFolderMigrationJob.Initialize: SourceDatabase=\"{0}\", Flags={1}", new object[] { migrationRequestJob.SourceDatabase, migrationRequestJob.Flags }); TenantPublicFolderConfigurationCache.Instance.RemoveValue(migrationRequestJob.OrganizationId); this.publicFolderConfiguration = TenantPublicFolderConfigurationCache.Instance.GetValue(migrationRequestJob.OrganizationId); this.publicFolderMigrators = new Dictionary <Guid, PublicFolderMigrator>(); base.Initialize(migrationRequestJob); if (this.publicFolderConfiguration.GetHierarchyMailboxInformation().Type != PublicFolderInformation.HierarchyType.InTransitMailboxGuid) { return; } LocalizedString sourceTracingID = LocalizedString.Empty; MailboxCopierFlags mailboxCopierFlags = MailboxCopierFlags.PublicFolderMigration; bool flag = migrationRequestJob.RequestStyle == RequestStyle.CrossOrg; if (flag) { sourceTracingID = MrsStrings.RPCHTTPPublicFoldersId(migrationRequestJob.RemoteMailboxServerLegacyDN); mailboxCopierFlags |= MailboxCopierFlags.CrossOrg; } Guid hierarchyMailboxGuid = this.publicFolderConfiguration.GetHierarchyMailboxInformation().HierarchyMailboxGuid; PublicFolderMigrator value = new PublicFolderMigrator(this.publicFolderConfiguration, migrationRequestJob.FolderToMailboxMap, hierarchyMailboxGuid, mailboxCopierFlags | MailboxCopierFlags.Root, migrationRequestJob, this, sourceTracingID); this.publicFolderMigrators[hierarchyMailboxGuid] = value; foreach (FolderToMailboxMapping folderToMailboxMapping in migrationRequestJob.FolderToMailboxMap) { Guid mailboxGuid = folderToMailboxMapping.MailboxGuid; if (mailboxGuid != hierarchyMailboxGuid && !this.publicFolderMigrators.ContainsKey(mailboxGuid)) { PublicFolderMigrator value2 = new PublicFolderMigrator(this.publicFolderConfiguration, migrationRequestJob.FolderToMailboxMap, mailboxGuid, mailboxCopierFlags, migrationRequestJob, this, sourceTracingID); this.publicFolderMigrators[mailboxGuid] = value2; } } }
internal PublicFolderMigrator(TenantPublicFolderConfiguration publicFolderConfiguration, List <FolderToMailboxMapping> folderToMailboxMap, Guid targetMailboxGuid, MailboxCopierFlags copierFlags, TransactionalRequestJob migrationRequestJob, BaseJob publicFolderMigrationJob, LocalizedString sourceTracingID) : base(Guid.Empty, targetMailboxGuid, migrationRequestJob, publicFolderMigrationJob, copierFlags, sourceTracingID, new LocalizedString(targetMailboxGuid.ToString())) { MrsTracer.Service.Function("PublicFolderMigrator.Constructor", new object[0]); this.publicFolderConfiguration = publicFolderConfiguration; this.folderToMailboxMap = folderToMailboxMap; }
public MailboxMerger(Guid sourceMailboxGuid, Guid targetMailboxGuid, TransactionalRequestJob requestJob, BaseJob mrsJob, MailboxCopierFlags flags, LocalizedString sourceTracingID, LocalizedString targetTracingID) : base(sourceMailboxGuid, targetMailboxGuid, requestJob, mrsJob, flags, sourceTracingID, targetTracingID) { }
public MailboxMover(TransactionalRequestJob requestJob, BaseJob mrsJob, MailboxCopierFlags mbxCopierFlags, LocalizedString tracingID, Guid mailboxGuid, TenantPartitionHint partitionHintToUse) : base(mailboxGuid, mailboxGuid, requestJob, mrsJob, mbxCopierFlags, tracingID, tracingID) { this.partitionHintToUse = partitionHintToUse; }
public MailboxMover(TransactionalRequestJob requestJob, BaseJob mrsJob, MailboxCopierFlags mbxCopierFlags, LocalizedString tracingID, Guid mailboxGuid) : this(requestJob, mrsJob, mbxCopierFlags, tracingID, mailboxGuid, CommonUtils.GetPartitionHint(requestJob.OrganizationId)) { }
internal PublicFolderMover(TransactionalRequestJob moveRequestJob, BaseJob publicFolderMoveJob, List <byte[]> hierarchyFolderEntryIds, MailboxCopierFlags copierFlags, LocalizedString sourceTracingID, LocalizedString targetTracingID) : base(moveRequestJob.SourceExchangeGuid, moveRequestJob.TargetExchangeGuid, moveRequestJob, publicFolderMoveJob, copierFlags, sourceTracingID, targetTracingID) { MrsTracer.Service.Function("PublicFolderMover.Constructor", new object[0]); this.hierarchyFolderEntryIds = hierarchyFolderEntryIds; this.sessionSpecificEntryIds = new Dictionary <byte[], byte[]>(this.hierarchyFolderEntryIds.Count, ArrayComparer <byte> .Comparer); }