// Token: 0x06000F1C RID: 3868 RVA: 0x0005A544 File Offset: 0x00058744 public static void PowerShellExceptionHandler(PublicFolderSplitHelper.PowerShellMethod method, ISplitOperationState splitOperationState) { if (splitOperationState == null) { PublicFolderSplitHelper.PowerShellExceptionHandler(method); return; } ErrorRecord errorRecord = null; string errorDetails = null; try { method(out errorDetails, out errorRecord); } catch (ParameterBindingException error) { splitOperationState.Error = error; splitOperationState.ErrorDetails = errorDetails; } catch (CmdletInvocationException error2) { splitOperationState.Error = error2; splitOperationState.ErrorDetails = errorDetails; } if (errorRecord != null) { splitOperationState.Error = errorRecord.Exception; splitOperationState.ErrorDetails = errorDetails; } }
// Token: 0x06000ECF RID: 3791 RVA: 0x00058444 File Offset: 0x00056644 private void RemovePublicFolderMoveRequest(PublicFolderMoveRequest moveRequest) { string value = base.CurrentPublicFolderSession.OrganizationId.OrganizationalUnit.Name + "\\" + moveRequest.RequestGuid.ToString(); PSCommand cmd = new PSCommand(); cmd.AddCommand("Remove-PublicFolderMoveRequest"); cmd.AddParameter("Identity", value); PublicFolderSplitHelper.PowerShellExceptionHandler(delegate(out string originOfException, out ErrorRecord error) { originOfException = "MoveContentOperation::RemovePublicFolderMoveRequest - RunPSCommand - Remove-PublicFolderMoveRequest"; IAssistantRunspaceProxy assistantRunspaceProxy = this.powershellFactory.CreateRunspaceForDatacenterAdmin(this.CurrentPublicFolderSession.OrganizationId); assistantRunspaceProxy.RunPSCommand <PublicFolderMoveRequest>(cmd, out error, this.logger); }, this.splitOperationState); }
// Token: 0x06000ECE RID: 3790 RVA: 0x0005836C File Offset: 0x0005656C private PublicFolderMoveRequest GetPublicFolderMoveRequest() { PSCommand cmd = new PSCommand(); cmd.AddCommand("Get-PublicFolderMoveRequest"); cmd.AddParameter("Organization", base.CurrentPublicFolderSession.OrganizationId.OrganizationalUnit.Name); PublicFolderMoveRequest moveRequest = null; PublicFolderSplitHelper.PowerShellExceptionHandler(delegate(out string originOfException, out ErrorRecord error) { originOfException = "MoveContentOperation::GetPublicFolderMoveRequest - RunPSCommand - Get-PublicFolderMoveRequest"; IAssistantRunspaceProxy assistantRunspaceProxy = this.powershellFactory.CreateRunspaceForDatacenterAdmin(this.CurrentPublicFolderSession.OrganizationId); moveRequest = assistantRunspaceProxy.RunPSCommand <PublicFolderMoveRequest>(cmd, out error, this.logger); }, this.splitOperationState); return(moveRequest); }
// Token: 0x06000ECD RID: 3789 RVA: 0x00058250 File Offset: 0x00056450 private void ResetIsExcludedFromServingHierarchy() { string value = base.CurrentPublicFolderSession.OrganizationId.OrganizationalUnit.Name + "\\" + this.splitState.TargetMailboxGuid.ToString(); PSCommand cmd = new PSCommand(); cmd.AddCommand("Set-Mailbox"); cmd.AddParameter("PublicFolder"); cmd.AddParameter("Identity", value); cmd.AddParameter("IsExcludedFromServingHierarchy", false); PublicFolderSplitHelper.PowerShellExceptionHandler(delegate(out string originOfException, out ErrorRecord error) { originOfException = "MoveContentOperation::ResetIsExcludedFromServingHierarchy - RunPSCommand - Set-Mailbox"; IAssistantRunspaceProxy assistantRunspaceProxy = this.powershellFactory.CreateRunspaceForDatacenterAdmin(this.CurrentPublicFolderSession.OrganizationId); assistantRunspaceProxy.RunPSCommand <Mailbox>(cmd, out error, this.logger); }, this.splitOperationState); }
// Token: 0x06000ED0 RID: 3792 RVA: 0x00058534 File Offset: 0x00056734 private PublicFolderMoveRequestStatistics GetPublicFolderMoveRequestStatistics(PublicFolderMoveRequest moveRequest, bool includeReport) { PSCommand cmd = new PSCommand(); cmd.AddCommand("Get-PublicFolderMoveRequestStatistics"); cmd.AddParameter("Identity", moveRequest.Identity); if (includeReport) { cmd.AddParameter("IncludeReport"); } PublicFolderMoveRequestStatistics moveRequestStats = null; PublicFolderSplitHelper.PowerShellExceptionHandler(delegate(out string originOfException, out ErrorRecord error) { originOfException = "MoveContentOperation::GetPublicFolderMoveRequestStatistics - RunPSCommand - Get-PublicFolderMoveRequestStatistics"; IAssistantRunspaceProxy assistantRunspaceProxy = this.powershellFactory.CreateRunspaceForDatacenterAdmin(this.CurrentPublicFolderSession.OrganizationId); moveRequestStats = assistantRunspaceProxy.RunPSCommand <PublicFolderMoveRequestStatistics>(cmd, out error, this.logger); }, this.splitOperationState); return(moveRequestStats); }
// Token: 0x06000E97 RID: 3735 RVA: 0x00057914 File Offset: 0x00055B14 private Mailbox CreatePublicFolderMailbox() { string value = IdentifyTargetMailboxOperation.PublicFolderMailboxPrefix + DateTime.UtcNow.ToString("HHmmddss"); PSCommand cmd = new PSCommand(); cmd.AddCommand("New-Mailbox"); cmd.AddParameter("PublicFolder"); cmd.AddParameter("IsExcludedFromServingHierarchy"); cmd.AddParameter("Name", value); cmd.AddParameter("Organization", base.CurrentPublicFolderSession.OrganizationId.OrganizationalUnit.Name); Mailbox publicFolderMailbox = null; PublicFolderSplitHelper.PowerShellExceptionHandler(delegate(out string originOfException, out ErrorRecord error) { originOfException = "IdentifyTargetMailboxOperation::IsSplitNeeded::CreatePublicFolderMailbox - RunPSCommand - New-Mailbox -PublicFolder"; IAssistantRunspaceProxy assistantRunspaceProxy = this.powershellFactory.CreateRunspaceForDatacenterAdmin(this.CurrentPublicFolderSession.OrganizationId); publicFolderMailbox = assistantRunspaceProxy.RunPSCommand <Mailbox>(cmd, out error, this.logger); }, this.splitOperationState); return(publicFolderMailbox); }
// Token: 0x06000F17 RID: 3863 RVA: 0x0005A154 File Offset: 0x00058354 public static Unlimited <ByteQuantifiedSize> GetMailboxQuota(IPublicFolderMailboxLoggerBase logger, IAssistantRunspaceFactory powershellFactory, Guid mailboxGuid, OrganizationId organizationId, ISplitOperationState splitOperationState) { ADObjectId mailboxDatabase = null; bool useDatabaseQuotaDefaults = false; Unlimited <ByteQuantifiedSize> mailboxQuota = Unlimited <ByteQuantifiedSize> .UnlimitedValue; string value = string.Format("{0}\\{1}", organizationId.OrganizationalUnit.Name, mailboxGuid.ToString()); PSCommand psCommand = new PSCommand(); psCommand.AddCommand("Get-Mailbox"); psCommand.AddParameter("PublicFolder"); psCommand.AddParameter("Identity", value); Mailbox publicFolderMailbox = null; PublicFolderSplitHelper.PowerShellExceptionHandler(delegate(out string originOfException, out ErrorRecord error) { error = null; originOfException = "GetMailboxQuota - RunPSCommand: Get-Mailbox -PublicFolder"; IAssistantRunspaceProxy assistantRunspaceProxy = powershellFactory.CreateRunspaceForDatacenterAdmin(organizationId); publicFolderMailbox = assistantRunspaceProxy.RunPSCommand <Mailbox>(psCommand, out error, logger); if (error == null) { mailboxQuota = publicFolderMailbox.ProhibitSendQuota; useDatabaseQuotaDefaults = (publicFolderMailbox.UseDatabaseQuotaDefaults ?? false); MailboxDatabase mailboxDatabase = publicFolderMailbox.Database; if (useDatabaseQuotaDefaults && mailboxDatabase != null) { psCommand.Clear(); psCommand.AddCommand("Get-MailboxDatabase"); psCommand.AddParameter("Identity", mailboxDatabase.Name); originOfException = "GetMailboxQuota - RunPSCommand: Get-MailboxDatabase"; mailboxDatabase = assistantRunspaceProxy.RunPSCommand <MailboxDatabase>(psCommand, out error, logger); if (error == null) { mailboxQuota = mailboxDatabase.ProhibitSendQuota; } } } }, splitOperationState); return(mailboxQuota); }
// Token: 0x06000F16 RID: 3862 RVA: 0x00059F68 File Offset: 0x00058168 public static Unlimited <ByteQuantifiedSize> GetActualItemSize(IPublicFolderMailboxLoggerBase logger, IAssistantRunspaceFactory powershellFactory, Guid mailboxGuid, OrganizationId organizationId, ISplitOperationState splitOperationState) { Unlimited <ByteQuantifiedSize> actualItemSize = ByteQuantifiedSize.Zero; Collection <PSObject> output = null; Collection <ErrorRecord> errors = null; Dictionary <string, string> paramDictionary = new Dictionary <string, string> { { "Mailbox", mailboxGuid.ToString() }, { "Organization", organizationId.OrganizationalUnit.Name } }; string text = Path.Combine(ExchangeSetupContext.InstallPath, "Scripts"); if (string.IsNullOrEmpty(text)) { throw new SplitProcessorException("PublicFolderSplitHelper::GetActualItemSize - GetExchangeScriptsPath", new Exception("ExchangeScriptsPath is null or empty")); } string scriptFullPath = Path.Combine(text, "Get-PublicFolderMailboxSize.ps1"); PublicFolderSplitHelper.PowerShellExceptionHandler(delegate(out string originOfException, out ErrorRecord error) { error = null; originOfException = "GetActualItemSize - RunPowershellScript Get-PublicFolderMailboxSize.ps1"; IAssistantRunspaceProxy assistantRunspaceProxy = powershellFactory.CreateRunspaceForDatacenterAdmin(organizationId); output = assistantRunspaceProxy.RunPowershellScript(scriptFullPath, paramDictionary, out errors, logger); if (errors == null && output != null && output.Count > 0) { actualItemSize = (ByteQuantifiedSize)output[0].BaseObject; return; } error = errors[0]; }, splitOperationState); return(actualItemSize); }
// Token: 0x06000ECC RID: 3788 RVA: 0x0005803C File Offset: 0x0005623C private PublicFolderMoveRequest IssueMoveRequest() { List <SplitPlanFolder> foldersToSplit = this.splitState.SplitPlan.FoldersToSplit; List <string> list = new List <string>(); foreach (SplitPlanFolder splitPlanFolder in foldersToSplit) { list.Add(splitPlanFolder.PublicFolderId.MapiFolderPath.ToString()); } string publicFolderMoveRequestName = MoveContentOperation.PublicFolderMoveRequestPrefix + DateTime.UtcNow.ToString("HHmmddss"); PSCommand cmd = new PSCommand(); cmd.AddCommand("New-PublicFolderMoveRequest"); cmd.AddParameter("AllowLargeItems"); cmd.AddParameter("Name", publicFolderMoveRequestName); cmd.AddParameter("Folders", list.ToArray()); cmd.AddParameter("TargetMailbox", this.splitState.TargetMailboxGuid.ToString()); cmd.AddParameter("CompletedRequestAgeLimit", PublicFolderSplitConfig.Instance.CompletedPublicFolderMoveRequestAgeLimit); cmd.AddParameter("Organization", base.CurrentPublicFolderSession.OrganizationId.OrganizationalUnit.Name); PublicFolderMoveRequest moveRequest = null; PublicFolderSplitHelper.PowerShellExceptionHandler(delegate(out string originOfException, out ErrorRecord error) { originOfException = "MoveContentOperation::IssueMoveRequest - RunPSCommand - New-PublicFolderMoveRequest"; IAssistantRunspaceProxy assistantRunspaceProxy = this.powershellFactory.CreateRunspaceForDatacenterAdmin(this.CurrentPublicFolderSession.OrganizationId); moveRequest = assistantRunspaceProxy.RunPSCommand <PublicFolderMoveRequest>(cmd, out error, this.logger); if (moveRequest != null) { this.splitState.PublicFolderMoveRequestName = publicFolderMoveRequestName; } }, this.splitOperationState); if (this.splitOperationState.Error == null && moveRequest == null) { this.splitOperationState.Error = new IssuePublicFolderMoveRequestFailedException(); } return(moveRequest); }
// Token: 0x06000F15 RID: 3861 RVA: 0x00059E04 File Offset: 0x00058004 public static Unlimited <ByteQuantifiedSize> GetTotalItemSize(IPublicFolderMailboxLoggerBase logger, IAssistantRunspaceFactory powershellFactory, Guid mailboxGuid, OrganizationId organizationId, ISplitOperationState splitOperationState) { Unlimited <ByteQuantifiedSize> totalItemSize = ByteQuantifiedSize.Zero; string value = string.Format("{0}\\{1}", organizationId.OrganizationalUnit.Name, mailboxGuid.ToString()); PSCommand cmd = new PSCommand(); cmd.AddCommand("Get-MailboxStatistics"); cmd.AddParameter("NoADLookup"); cmd.AddParameter("Identity", value); MailboxStatistics publicFolderMailboxStatistics = null; PublicFolderSplitHelper.PowerShellExceptionHandler(delegate(out string originOfException, out ErrorRecord error) { error = null; originOfException = "GetTotalItemSize - RunPSCommand Get-MailboxStatistics"; IAssistantRunspaceProxy assistantRunspaceProxy = powershellFactory.CreateRunspaceForDatacenterAdmin(organizationId); publicFolderMailboxStatistics = assistantRunspaceProxy.RunPSCommand <MailboxStatistics>(cmd, out error, logger); if (error == null && publicFolderMailboxStatistics != null) { totalItemSize = publicFolderMailboxStatistics.TotalItemSize; } }, splitOperationState); return(totalItemSize); }