// Token: 0x06000EC7 RID: 3783 RVA: 0x00057A38 File Offset: 0x00055C38 protected override void InvokeInternal() { if (!this.AreSplitPlanFoldersValid()) { this.splitOperationState.Error = new SplitPlanFoldersInvalidException(); return; } PublicFolderMoveRequest publicFolderMoveRequest = this.GetPublicFolderMoveRequest(); if (this.splitOperationState.Error == null && this.TryHandleExistingRequest(publicFolderMoveRequest)) { Unlimited <ByteQuantifiedSize> totalItemSize = PublicFolderSplitHelper.GetTotalItemSize(this.logger, this.powershellFactory, this.splitState.TargetMailboxGuid, base.CurrentPublicFolderSession.OrganizationId, this.splitOperationState); if (this.splitOperationState.Error != null) { return; } Unlimited <ByteQuantifiedSize> mailboxQuota = PublicFolderSplitHelper.GetMailboxQuota(this.logger, this.powershellFactory, this.splitState.TargetMailboxGuid, base.CurrentPublicFolderSession.OrganizationId, this.splitOperationState); if (this.splitOperationState.Error != null) { return; } if (totalItemSize.Value.ToBytes() + this.splitState.SplitPlan.TotalSizeToSplit >= mailboxQuota.Value.ToBytes() * PublicFolderSplitConfig.Instance.SplitThreshold / 100UL) { this.splitOperationState.Error = new TargetMailboxOutofQuotaException(base.CurrentPublicFolderSession.OrganizationId.OrganizationalUnit.Name, this.splitState.TargetMailboxGuid.ToString()); return; } try { if (!PublicFolderSplitHelper.IsPrimaryHierarchy(this.splitState.TargetMailboxGuid, base.CurrentPublicFolderSession.OrganizationId)) { bool flag = false; bool flag2 = PublicFolderSplitHelper.IsSyncRequired(this.splitState.TargetMailboxGuid, base.CurrentPublicFolderSession.OrganizationId, out flag, this.xsoFactory, this.logger); if (flag2) { PublicFolderSplitHelper.SyncAndWaitForCompletion(this.splitState.TargetMailboxGuid, base.CurrentPublicFolderSession.OrganizationId, this.xsoFactory, this.logger, this.splitOperationState); } } else { this.logger.LogEvent(LogEventType.Verbose, string.Format("The target mailbox, {0}, is the primary hierarchy. Skipped sync.", this.splitState.TargetMailboxGuid.ToString())); } } catch (StorageTransientException error) { this.splitOperationState.Error = error; return; } catch (StoragePermanentException error2) { this.splitOperationState.Error = error2; return; } this.IssueMoveRequest(); if (this.splitOperationState.Error == null) { this.splitOperationState.PartialStep = true; this.logger.LogEvent(LogEventType.Verbose, "MoveContentOperation::InvokeInternal - Successfully issued a new public folder move request."); } } }
// Token: 0x06000F81 RID: 3969 RVA: 0x0005BDD8 File Offset: 0x00059FD8 public bool IsSplitNeeded() { bool result = false; Unlimited <ByteQuantifiedSize> mailboxQuota = PublicFolderSplitHelper.GetMailboxQuota(this.logger, this.powershellFactory, this.publicFolderSession.MailboxGuid, this.publicFolderSession.OrganizationId, null); Unlimited <ByteQuantifiedSize> unlimited = ByteQuantifiedSize.Zero; Unlimited <ByteQuantifiedSize> unlimited2 = ByteQuantifiedSize.Zero; if (!mailboxQuota.IsUnlimited) { Unlimited <ByteQuantifiedSize> totalItemSize; unlimited = (totalItemSize = PublicFolderSplitHelper.GetTotalItemSize(this.logger, this.powershellFactory, this.publicFolderSession.MailboxGuid, this.publicFolderSession.OrganizationId, null)); if (totalItemSize.Value.ToBytes() >= mailboxQuota.Value.ToBytes() * PublicFolderSplitConfig.Instance.SplitThreshold / 100UL) { Unlimited <ByteQuantifiedSize> actualItemSize; unlimited2 = (actualItemSize = PublicFolderSplitHelper.GetActualItemSize(this.logger, this.powershellFactory, this.publicFolderSession.MailboxGuid, this.publicFolderSession.OrganizationId, null)); if (actualItemSize.Value.ToBytes() >= mailboxQuota.Value.ToBytes() * PublicFolderSplitConfig.Instance.SplitThreshold / 100UL) { result = true; } } } this.logger.LogEvent(LogEventType.Statistics, string.Format("IsSplitNeeded={0},MailboxQuota={1},TotalItemSize={2},ActualItemSize={3}", new object[] { result.ToString(), mailboxQuota.ToString(), unlimited.ToString(), unlimited2.ToString() })); return(result); }
// Token: 0x06000E96 RID: 3734 RVA: 0x000577BC File Offset: 0x000559BC private bool CanReusePreviousTargetMailbox() { bool result = false; if (this.splitState.PreviousSplitJobState != null && this.splitState.PreviousSplitJobState.OverallSplitState != null && this.splitState.PreviousSplitJobState.OverallSplitState.Error != null) { Guid targetMailboxGuid = this.splitState.PreviousSplitJobState.TargetMailboxGuid; Unlimited <ByteQuantifiedSize> totalItemSize = PublicFolderSplitHelper.GetTotalItemSize(this.logger, this.powershellFactory, this.splitState.PreviousSplitJobState.TargetMailboxGuid, base.CurrentPublicFolderSession.OrganizationId, this.splitOperationState); Unlimited <ByteQuantifiedSize> mailboxQuota = PublicFolderSplitHelper.GetMailboxQuota(this.logger, this.powershellFactory, this.splitState.PreviousSplitJobState.TargetMailboxGuid, base.CurrentPublicFolderSession.OrganizationId, this.splitOperationState); if (totalItemSize.Value.ToBytes() <= mailboxQuota.Value.ToBytes() * PublicFolderSplitConfig.Instance.MaxTargetOccupiedThreshold / 100UL) { result = true; } } return(result); }